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