1 /* tslint:disable:no-unused-expression */
3 import * as chai from 'chai'
6 flushAndRunMultipleServers,
12 setAccessTokensToServers,
13 uploadVideo, uploadVideoAndGetId, viewVideo, wait, countVideoViewsOf, doubleFollow, waitJobs
14 } from '../../../../shared/extra-utils'
15 import { getVideosOverview } from '../../../../shared/extra-utils/overviews/overviews'
16 import { VideosOverview } from '../../../../shared/models/overviews'
17 import { listMyVideosHistory } from '../../../../shared/extra-utils/videos/video-history'
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 () {
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.serverNumber, videoIdServer1)
64 expect(total).to.equal(2)
69 for (const server of servers) {
70 const total = await countVideoViewsOf(server.serverNumber, videoIdServer2)
71 expect(total).to.equal(2)
76 it('Should clean old video views', async function () {
81 killallServers([ servers[0] ])
83 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '5 seconds' } } } })
87 // Should still have views
90 for (const server of servers) {
91 const total = await countVideoViewsOf(server.serverNumber, videoIdServer1)
92 expect(total).to.equal(2)
97 const totalServer1 = await countVideoViewsOf(servers[0].serverNumber, videoIdServer2)
98 expect(totalServer1).to.equal(0)
100 const totalServer2 = await countVideoViewsOf(servers[1].serverNumber, videoIdServer2)
101 expect(totalServer2).to.equal(2)
105 after(async function () {
106 killallServers(servers)
108 // Keep the logs if the test failed