1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
4 import * as chai from 'chai'
11 setAccessTokensToServers,
14 } from '../../../../shared/extra-utils'
16 const expect = chai.expect
18 describe('Test video views cleaner', function () {
19 let servers: PeerTubeServer[]
21 let videoIdServer1: string
22 let videoIdServer2: string
24 before(async function () {
27 servers = await createMultipleServers(2)
28 await setAccessTokensToServers(servers)
30 await doubleFollow(servers[0], servers[1])
32 videoIdServer1 = (await servers[0].videos.quickUpload({ name: 'video server 1' })).uuid
33 videoIdServer2 = (await servers[1].videos.quickUpload({ name: 'video server 2' })).uuid
35 await waitJobs(servers)
37 await servers[0].videos.view({ id: videoIdServer1 })
38 await servers[1].videos.view({ id: videoIdServer1 })
39 await servers[0].videos.view({ id: videoIdServer2 })
40 await servers[1].videos.view({ id: videoIdServer2 })
42 await waitJobs(servers)
45 it('Should not clean old video views', async function () {
48 await killallServers([ servers[0] ])
50 await servers[0].run({ views: { videos: { remote: { max_age: '10 days' } } } })
54 // Should still have views
57 for (const server of servers) {
58 const total = await server.sql.countVideoViewsOf(videoIdServer1)
59 expect(total).to.equal(2, 'Server ' + server.serverNumber + ' does not have the correct amount of views')
64 for (const server of servers) {
65 const total = await server.sql.countVideoViewsOf(videoIdServer2)
66 expect(total).to.equal(2, 'Server ' + server.serverNumber + ' does not have the correct amount of views')
71 it('Should clean old video views', async function () {
74 await killallServers([ servers[0] ])
76 await servers[0].run({ views: { videos: { remote: { max_age: '5 seconds' } } } })
80 // Should still have views
83 for (const server of servers) {
84 const total = await server.sql.countVideoViewsOf(videoIdServer1)
85 expect(total).to.equal(2)
90 const totalServer1 = await servers[0].sql.countVideoViewsOf(videoIdServer2)
91 expect(totalServer1).to.equal(0)
93 const totalServer2 = await servers[1].sql.countVideoViewsOf(videoIdServer2)
94 expect(totalServer2).to.equal(2)
98 after(async function () {
99 await cleanupTests(servers)