aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests/api
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/api')
-rw-r--r--server/tests/api/check-params/config.ts2
-rw-r--r--server/tests/api/index-fast.ts3
-rw-r--r--server/tests/api/index-slow.ts1
-rw-r--r--server/tests/api/server/config.ts4
-rw-r--r--server/tests/api/server/stats.ts102
5 files changed, 107 insertions, 5 deletions
diff --git a/server/tests/api/check-params/config.ts b/server/tests/api/check-params/config.ts
index c1c0a3f59..a66e51a6a 100644
--- a/server/tests/api/check-params/config.ts
+++ b/server/tests/api/check-params/config.ts
@@ -2,7 +2,7 @@
2 2
3import { omit } from 'lodash' 3import { omit } from 'lodash'
4import 'mocha' 4import 'mocha'
5import { CustomConfig } from '../../../../shared/models/config/custom-config.model' 5import { CustomConfig } from '../../../../shared/models/server/custom-config.model'
6 6
7import { 7import {
8 createUser, flushTests, killallServers, makeDeleteRequest, makeGetRequest, makePutBodyRequest, runServer, ServerInfo, 8 createUser, flushTests, killallServers, makeDeleteRequest, makeGetRequest, makePutBodyRequest, runServer, ServerInfo,
diff --git a/server/tests/api/index-fast.ts b/server/tests/api/index-fast.ts
index 9f52310dd..464dcb5e0 100644
--- a/server/tests/api/index-fast.ts
+++ b/server/tests/api/index-fast.ts
@@ -1,5 +1,5 @@
1// Order of the tests we want to execute 1// Order of the tests we want to execute
2import './server/config' 2import './server/stats'
3import './check-params' 3import './check-params'
4import './users/users' 4import './users/users'
5import './videos/single-server' 5import './videos/single-server'
@@ -10,3 +10,4 @@ import './videos/video-description'
10import './videos/video-privacy' 10import './videos/video-privacy'
11import './videos/services' 11import './videos/services'
12import './server/email' 12import './server/email'
13import './server/config'
diff --git a/server/tests/api/index-slow.ts b/server/tests/api/index-slow.ts
index 0082bcb56..cde546856 100644
--- a/server/tests/api/index-slow.ts
+++ b/server/tests/api/index-slow.ts
@@ -1,5 +1,4 @@
1// Order of the tests we want to execute 1// Order of the tests we want to execute
2// import './multiple-servers'
3import './videos/video-transcoder' 2import './videos/video-transcoder'
4import './videos/multiple-servers' 3import './videos/multiple-servers'
5import './server/follows' 4import './server/follows'
diff --git a/server/tests/api/server/config.ts b/server/tests/api/server/config.ts
index 048135a34..3d90580d8 100644
--- a/server/tests/api/server/config.ts
+++ b/server/tests/api/server/config.ts
@@ -2,8 +2,8 @@
2 2
3import 'mocha' 3import 'mocha'
4import * as chai from 'chai' 4import * as chai from 'chai'
5import { About } from '../../../../shared/models/config/about.model' 5import { About } from '../../../../shared/models/server/about.model'
6import { CustomConfig } from '../../../../shared/models/config/custom-config.model' 6import { CustomConfig } from '../../../../shared/models/server/custom-config.model'
7import { deleteCustomConfig, getAbout, killallServers, reRunServer } from '../../utils' 7import { deleteCustomConfig, getAbout, killallServers, reRunServer } from '../../utils'
8const expect = chai.expect 8const expect = chai.expect
9 9
diff --git a/server/tests/api/server/stats.ts b/server/tests/api/server/stats.ts
new file mode 100644
index 000000000..71d54c0ab
--- /dev/null
+++ b/server/tests/api/server/stats.ts
@@ -0,0 +1,102 @@
1/* tslint:disable:no-unused-expression */
2
3import * as chai from 'chai'
4import 'mocha'
5import { ServerStats } from '../../../../shared/models/server/server-stats.model'
6import {
7 createUser,
8 doubleFollow,
9 flushAndRunMultipleServers,
10 follow,
11 killallServers,
12 ServerInfo,
13 uploadVideo,
14 viewVideo,
15 wait
16} from '../../utils'
17import { flushTests, setAccessTokensToServers } from '../../utils/index'
18import { getStats } from '../../utils/server/stats'
19import { addVideoCommentThread } from '../../utils/videos/video-comments'
20
21const expect = chai.expect
22
23describe('Test stats', function () {
24 let servers: ServerInfo[] = []
25
26 before(async function () {
27 this.timeout(60000)
28
29 await flushTests()
30 servers = await flushAndRunMultipleServers(3)
31 await setAccessTokensToServers(servers)
32
33 await doubleFollow(servers[0], servers[1])
34
35 const user = {
36 username: 'user1',
37 password: 'super_password'
38 }
39 await createUser(servers[0].url, servers[0].accessToken, user.username, user.password)
40
41 const resVideo = await uploadVideo(servers[0].url, servers[0].accessToken, {})
42 const videoUUID = resVideo.body.video.uuid
43
44 await addVideoCommentThread(servers[0].url, servers[0].accessToken, videoUUID, 'comment')
45
46 await viewVideo(servers[0].url, videoUUID)
47
48 await follow(servers[2].url, [ servers[0].url ], servers[2].accessToken)
49 await wait(5000)
50 })
51
52 it('Should have the correct stats on instance 1', async function () {
53 const res = await getStats(servers[0].url)
54 const data: ServerStats = res.body
55
56 expect(data.totalLocalVideoComments).to.equal(1)
57 expect(data.totalLocalVideos).to.equal(1)
58 expect(data.totalLocalVideoViews).to.equal(1)
59 expect(data.totalUsers).to.equal(2)
60 expect(data.totalVideoComments).to.equal(1)
61 expect(data.totalVideos).to.equal(1)
62 expect(data.totalInstanceFollowers).to.equal(2)
63 expect(data.totalInstanceFollowing).to.equal(1)
64 })
65
66 it('Should have the correct stats on instance 2', async function () {
67 const res = await getStats(servers[1].url)
68 const data: ServerStats = res.body
69
70 expect(data.totalLocalVideoComments).to.equal(0)
71 expect(data.totalLocalVideos).to.equal(0)
72 expect(data.totalLocalVideoViews).to.equal(0)
73 expect(data.totalUsers).to.equal(1)
74 expect(data.totalVideoComments).to.equal(1)
75 expect(data.totalVideos).to.equal(1)
76 expect(data.totalInstanceFollowers).to.equal(1)
77 expect(data.totalInstanceFollowing).to.equal(1)
78 })
79
80 it('Should have the correct stats on instance 3', async function () {
81 const res = await getStats(servers[2].url)
82 const data: ServerStats = res.body
83
84 expect(data.totalLocalVideoComments).to.equal(0)
85 expect(data.totalLocalVideos).to.equal(0)
86 expect(data.totalLocalVideoViews).to.equal(0)
87 expect(data.totalUsers).to.equal(1)
88 expect(data.totalVideoComments).to.equal(1)
89 expect(data.totalVideos).to.equal(1)
90 expect(data.totalInstanceFollowing).to.equal(1)
91 expect(data.totalInstanceFollowers).to.equal(0)
92 })
93
94 after(async function () {
95 killallServers(servers)
96
97 // Keep the logs if the test failed
98 if (this['ok']) {
99 await flushTests()
100 }
101 })
102})