]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/tests/api/videos/videos-views-cleaner.ts
Add migrations
[github/Chocobozzz/PeerTube.git] / server / tests / api / videos / videos-views-cleaner.ts
CommitLineData
cda03765
C
1/* tslint:disable:no-unused-expression */
2
3import * as chai from 'chai'
4import 'mocha'
5import {
6 flushAndRunMultipleServers,
7 flushTests,
8 killallServers,
9 reRunServer,
10 runServer,
11 ServerInfo,
12 setAccessTokensToServers,
13 uploadVideo, uploadVideoAndGetId, viewVideo, wait, countVideoViewsOf, doubleFollow, waitJobs
94565d52
C
14} from '../../../../shared/extra-utils'
15import { getVideosOverview } from '../../../../shared/extra-utils/overviews/overviews'
cda03765 16import { VideosOverview } from '../../../../shared/models/overviews'
94565d52 17import { listMyVideosHistory } from '../../../../shared/extra-utils/videos/video-history'
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 () {
28 this.timeout(50000)
29
30 await flushTests()
31
32 servers = await flushAndRunMultipleServers(2)
33 await setAccessTokensToServers(servers)
34
35 await doubleFollow(servers[0], servers[1])
36
37 videoIdServer1 = (await uploadVideoAndGetId({ server: servers[0], videoName: 'video server 1' })).uuid
38 videoIdServer2 = (await uploadVideoAndGetId({ server: servers[1], videoName: 'video server 2' })).uuid
39
40 await waitJobs(servers)
41
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)
46
47 await waitJobs(servers)
48 })
49
50 it('Should not clean old video views', async function () {
51 this.timeout(50000)
52
53 killallServers([ servers[0] ])
54
55 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '10 days' } } } })
56
57 await wait(6000)
58
59 // Should still have views
60
61 {
62 for (const server of servers) {
63 const total = await countVideoViewsOf(server.serverNumber, videoIdServer1)
64 expect(total).to.equal(2)
65 }
66 }
67
68 {
69 for (const server of servers) {
70 const total = await countVideoViewsOf(server.serverNumber, videoIdServer2)
71 expect(total).to.equal(2)
72 }
73 }
74 })
75
76 it('Should clean old video views', async function () {
77 this.timeout(50000)
78
79 this.timeout(50000)
80
81 killallServers([ servers[0] ])
82
83 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '5 seconds' } } } })
84
85 await wait(6000)
86
87 // Should still have views
88
89 {
90 for (const server of servers) {
91 const total = await countVideoViewsOf(server.serverNumber, videoIdServer1)
92 expect(total).to.equal(2)
93 }
94 }
95
96 {
97 const totalServer1 = await countVideoViewsOf(servers[0].serverNumber, videoIdServer2)
98 expect(totalServer1).to.equal(0)
99
100 const totalServer2 = await countVideoViewsOf(servers[1].serverNumber, videoIdServer2)
101 expect(totalServer2).to.equal(2)
102 }
103 })
104
105 after(async function () {
106 killallServers(servers)
107
108 // Keep the logs if the test failed
109 if (this['ok']) {
110 await flushTests()
111 }
112 })
113})