]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/tests/api/videos/videos-views-cleaner.ts
Add ability to skip count query
[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,
210feb6c 10 flushAndRunServer,
cda03765
C
11 ServerInfo,
12 setAccessTokensToServers,
48f07b4a 13 uploadVideo, uploadVideoAndGetId, viewVideo, wait, countVideoViewsOf, doubleFollow, waitJobs, cleanupTests, closeAllSequelize
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
cda03765
C
30 servers = await flushAndRunMultipleServers(2)
31 await setAccessTokensToServers(servers)
32
33 await doubleFollow(servers[0], servers[1])
34
35 videoIdServer1 = (await uploadVideoAndGetId({ server: servers[0], videoName: 'video server 1' })).uuid
36 videoIdServer2 = (await uploadVideoAndGetId({ server: servers[1], videoName: 'video server 2' })).uuid
37
38 await waitJobs(servers)
39
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)
44
45 await waitJobs(servers)
46 })
47
48 it('Should not clean old video views', async function () {
49 this.timeout(50000)
50
51 killallServers([ servers[0] ])
52
53 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '10 days' } } } })
54
55 await wait(6000)
56
57 // Should still have views
58
59 {
60 for (const server of servers) {
48f07b4a 61 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer1)
cda03765
C
62 expect(total).to.equal(2)
63 }
64 }
65
66 {
67 for (const server of servers) {
48f07b4a 68 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer2)
cda03765
C
69 expect(total).to.equal(2)
70 }
71 }
72 })
73
74 it('Should clean old video views', async function () {
75 this.timeout(50000)
76
cda03765
C
77 killallServers([ servers[0] ])
78
79 await reRunServer(servers[0], { views: { videos: { remote: { max_age: '5 seconds' } } } })
80
81 await wait(6000)
82
83 // Should still have views
84
85 {
86 for (const server of servers) {
48f07b4a 87 const total = await countVideoViewsOf(server.internalServerNumber, videoIdServer1)
cda03765
C
88 expect(total).to.equal(2)
89 }
90 }
91
92 {
48f07b4a 93 const totalServer1 = await countVideoViewsOf(servers[0].internalServerNumber, videoIdServer2)
cda03765
C
94 expect(totalServer1).to.equal(0)
95
48f07b4a 96 const totalServer2 = await countVideoViewsOf(servers[1].internalServerNumber, videoIdServer2)
cda03765
C
97 expect(totalServer2).to.equal(2)
98 }
99 })
100
7c3b7976 101 after(async function () {
48f07b4a
C
102 await closeAllSequelize(servers)
103
7c3b7976 104 await cleanupTests(servers)
cda03765
C
105 })
106})