]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/tests/api/videos/videos-views-cleaner.ts
emit more specific status codes on video upload (#3423)
[github/Chocobozzz/PeerTube.git] / server / tests / api / videos / videos-views-cleaner.ts
CommitLineData
a1587156 1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
cda03765
C
2
3import * as chai from 'chai'
4import 'mocha'
5import {
a1587156
C
6 cleanupTests,
7 closeAllSequelize,
8 countVideoViewsOf,
9 doubleFollow,
cda03765 10 flushAndRunMultipleServers,
cda03765
C
11 killallServers,
12 reRunServer,
cda03765
C
13 ServerInfo,
14 setAccessTokensToServers,
a1587156
C
15 uploadVideoAndGetId,
16 viewVideo,
17 wait,
18 waitJobs
94565d52 19} from '../../../../shared/extra-utils'
cda03765
C
20
21const expect = chai.expect
22
23describe('Test video views cleaner', function () {
24 let servers: ServerInfo[]
25
26 let videoIdServer1: string
27 let videoIdServer2: string
28
29 before(async function () {
30 this.timeout(50000)
31
cda03765
C
32 servers = await flushAndRunMultipleServers(2)
33 await setAccessTokensToServers(servers)
34
35 await doubleFollow(servers[0], servers[1])
36
37 videoIdServer1 = (await uploadVideoAndGetId({ server: servers[0], videoName: 'video server 1' })).uuid
38 videoIdServer2 = (await uploadVideoAndGetId({ server: servers[1], videoName: 'video server 2' })).uuid
39
40 await waitJobs(servers)
41
42 await viewVideo(servers[0].url, videoIdServer1)
43 await viewVideo(servers[1].url, videoIdServer1)
44 await viewVideo(servers[0].url, videoIdServer2)
45 await viewVideo(servers[1].url, videoIdServer2)
46
47 await waitJobs(servers)
48 })
49
50 it('Should not clean old video views', async function () {
51 this.timeout(50000)
52
53 killallServers([ servers[0] ])
54
55 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '10 days' } } } })
56
57 await wait(6000)
58
59 // Should still have views
60
61 {
62 for (const server of servers) {
48f07b4a 63 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer1)
c655c9ef 64 expect(total).to.equal(2, 'Server ' + server.serverNumber + ' does not have the correct amount of views')
cda03765
C
65 }
66 }
67
68 {
69 for (const server of servers) {
48f07b4a 70 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer2)
c655c9ef 71 expect(total).to.equal(2, 'Server ' + server.serverNumber + ' does not have the correct amount of views')
cda03765
C
72 }
73 }
74 })
75
76 it('Should clean old video views', async function () {
77 this.timeout(50000)
78
cda03765
C
79 killallServers([ servers[0] ])
80
81 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '5 seconds' } } } })
82
83 await wait(6000)
84
85 // Should still have views
86
87 {
88 for (const server of servers) {
48f07b4a 89 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer1)
cda03765
C
90 expect(total).to.equal(2)
91 }
92 }
93
94 {
48f07b4a 95 const totalServer1 = await countVideoViewsOf(servers[0].internalServerNumber, videoIdServer2)
cda03765
C
96 expect(totalServer1).to.equal(0)
97
48f07b4a 98 const totalServer2 = await countVideoViewsOf(servers[1].internalServerNumber, videoIdServer2)
cda03765
C
99 expect(totalServer2).to.equal(2)
100 }
101 })
102
7c3b7976 103 after(async function () {
48f07b4a
C
104 await closeAllSequelize(servers)
105
7c3b7976 106 await cleanupTests(servers)
cda03765
C
107 })
108})