1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
3 import * as chai from 'chai'
10 flushAndRunMultipleServers,
14 setAccessTokensToServers,
19 } from '../../../../shared/extra-utils'
21 const expect = chai.expect
23 describe('Test video views cleaner', function () {
24 let servers: ServerInfo[]
26 let videoIdServer1: string
27 let videoIdServer2: string
29 before(async function () {
32 servers = await flushAndRunMultipleServers(2)
33 await setAccessTokensToServers(servers)
35 await doubleFollow(servers[0], servers[1])
37 videoIdServer1 = (await uploadVideoAndGetId({ server: servers[0], videoName: 'video server 1' })).uuid
38 videoIdServer2 = (await uploadVideoAndGetId({ server: servers[1], videoName: 'video server 2' })).uuid
40 await waitJobs(servers)
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)
47 await waitJobs(servers)
50 it('Should not clean old video views', async function () {
53 killallServers([ servers[0] ])
55 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '10 days' } } } })
59 // Should still have views
62 for (const server of servers) {
63 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer1)
64 expect(total).to.equal(2)
69 for (const server of servers) {
70 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer2)
71 expect(total).to.equal(2)
76 it('Should clean old video views', async function () {
79 killallServers([ servers[0] ])
81 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '5 seconds' } } } })
85 // Should still have views
88 for (const server of servers) {
89 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer1)
90 expect(total).to.equal(2)
95 const totalServer1 = await countVideoViewsOf(servers[0].internalServerNumber, videoIdServer2)
96 expect(totalServer1).to.equal(0)
98 const totalServer2 = await countVideoViewsOf(servers[1].internalServerNumber, videoIdServer2)
99 expect(totalServer2).to.equal(2)
103 after(async function () {
104 await closeAllSequelize(servers)
106 await cleanupTests(servers)