]>
Commit | Line | Data |
---|---|---|
b5443104 C |
1 | import { VideoRateType } from '../../../shared' |
2 | import { | |
3 | addVideoChannel, | |
4 | createUser, | |
5 | flushTests, | |
6 | getVideosList, | |
7 | killallServers, | |
8 | rateVideo, | |
9 | runServer, | |
10 | ServerInfo, | |
11 | setAccessTokensToServers, | |
12 | uploadVideo | |
13 | } from '../utils' | |
14 | import * as Bluebird from 'bluebird' | |
15 | ||
16 | start() | |
17 | .catch(err => console.error(err)) | |
18 | ||
19 | // ---------------------------------------------------------------------------- | |
20 | ||
21 | async function start () { | |
e032aec9 C |
22 | await flushTests() |
23 | ||
24 | console.log('Flushed tests.') | |
25 | ||
26 | const server = await runServer(6) | |
27 | ||
b5443104 C |
28 | process.on('exit', async () => { |
29 | killallServers([ server ]) | |
30 | return | |
31 | }) | |
32 | process.on('SIGINT', goodbye) | |
33 | process.on('SIGTERM', goodbye) | |
34 | ||
b5443104 C |
35 | await setAccessTokensToServers([ server ]) |
36 | ||
37 | console.log('Servers ran.') | |
38 | ||
39 | // Forever | |
40 | const fakeTab = Array.from(Array(1000000).keys()) | |
7279b455 C |
41 | const funs = [ |
42 | uploadCustom | |
43 | // uploadCustom, | |
44 | // uploadCustom, | |
45 | // uploadCustom, | |
46 | // likeCustom, | |
47 | // createUserCustom, | |
48 | // createCustomChannel | |
49 | ] | |
50 | const promises = [] | |
51 | ||
52 | for (const fun of funs) { | |
53 | promises.push( | |
54 | Bluebird.map(fakeTab, () => { | |
55 | return fun(server).catch(err => console.error(err)) | |
56 | }, { concurrency: 3 }) | |
57 | ) | |
58 | } | |
59 | ||
60 | await Promise.all(promises) | |
b5443104 C |
61 | } |
62 | ||
63 | function getRandomInt (min, max) { | |
64 | return Math.floor(Math.random() * (max - min)) + min | |
65 | } | |
66 | ||
67 | function createCustomChannel (server: ServerInfo) { | |
68 | const videoChannel = { | |
8a19bee1 | 69 | name: Date.now().toString(), |
b5443104 C |
70 | displayName: Date.now().toString(), |
71 | description: Date.now().toString() | |
72 | } | |
73 | ||
74 | return addVideoChannel(server.url, server.accessToken, videoChannel) | |
75 | } | |
76 | ||
77 | function createUserCustom (server: ServerInfo) { | |
78 | const username = Date.now().toString() + getRandomInt(0, 100000) | |
79 | console.log('Creating user %s.', username) | |
80 | ||
81 | return createUser(server.url, server.accessToken, username, 'coucou') | |
82 | } | |
83 | ||
84 | function uploadCustom (server: ServerInfo) { | |
85 | console.log('Uploading video.') | |
86 | ||
87 | const videoAttributes = { | |
88 | name: Date.now() + ' name', | |
89 | category: 4, | |
90 | nsfw: false, | |
91 | licence: 2, | |
92 | language: 'en', | |
93 | description: Date.now() + ' description', | |
94 | tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ], | |
95 | fixture: 'video_short.mp4' | |
96 | } | |
97 | ||
98 | return uploadVideo(server.url, server.accessToken, videoAttributes) | |
99 | } | |
100 | ||
101 | function likeCustom (server: ServerInfo) { | |
102 | return rateCustom(server, 'like') | |
103 | } | |
104 | ||
105 | function dislikeCustom (server: ServerInfo) { | |
106 | return rateCustom(server, 'dislike') | |
107 | } | |
108 | ||
109 | async function rateCustom (server: ServerInfo, rating: VideoRateType) { | |
110 | const res = await getVideosList(server.url) | |
111 | ||
112 | const videos = res.body.data | |
113 | if (videos.length === 0) return undefined | |
114 | ||
115 | const videoToRate = videos[getRandomInt(0, videos.length)] | |
116 | ||
117 | console.log('Rating (%s) video.', rating) | |
118 | return rateVideo(server.url, server.accessToken, videoToRate.id, rating) | |
119 | } | |
120 | ||
121 | function goodbye () { | |
122 | return process.exit(-1) | |
123 | } |