1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
4 import * as chai from 'chai'
8 flushAndRunMultipleServers,
12 setAccessTokensToServers,
17 } from '../../../../shared/extra-utils'
19 const expect = chai.expect
21 describe('Test video views cleaner', function () {
22 let servers: ServerInfo[]
24 let videoIdServer1: string
25 let videoIdServer2: string
27 before(async function () {
30 servers = await flushAndRunMultipleServers(2)
31 await setAccessTokensToServers(servers)
33 await doubleFollow(servers[0], servers[1])
35 videoIdServer1 = (await uploadVideoAndGetId({ server: servers[0], videoName: 'video server 1' })).uuid
36 videoIdServer2 = (await uploadVideoAndGetId({ server: servers[1], videoName: 'video server 2' })).uuid
38 await waitJobs(servers)
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)
45 await waitJobs(servers)
48 it('Should not clean old video views', async function () {
51 await killallServers([ servers[0] ])
53 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '10 days' } } } })
57 // Should still have views
60 for (const server of servers) {
61 const total = await server.sqlCommand.countVideoViewsOf(videoIdServer1)
62 expect(total).to.equal(2, 'Server ' + server.serverNumber + ' does not have the correct amount of views')
67 for (const server of servers) {
68 const total = await server.sqlCommand.countVideoViewsOf(videoIdServer2)
69 expect(total).to.equal(2, 'Server ' + server.serverNumber + ' does not have the correct amount of views')
74 it('Should clean old video views', async function () {
77 await killallServers([ servers[0] ])
79 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '5 seconds' } } } })
83 // Should still have views
86 for (const server of servers) {
87 const total = await server.sqlCommand.countVideoViewsOf(videoIdServer1)
88 expect(total).to.equal(2)
93 const totalServer1 = await servers[0].sqlCommand.countVideoViewsOf(videoIdServer2)
94 expect(totalServer1).to.equal(0)
96 const totalServer2 = await servers[1].sqlCommand.countVideoViewsOf(videoIdServer2)
97 expect(totalServer2).to.equal(2)
101 after(async function () {
102 await cleanupTests(servers)