]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/utils/pods.js
Remove one pod (#76)
[github/Chocobozzz/PeerTube.git] / server / tests / utils / pods.js
1 'use strict'
2
3 const request = require('supertest')
4
5 const podsUtils = {
6 getFriendsList,
7 makeFriends,
8 quitFriends,
9 quitOneFriend
10 }
11
12 // ---------------------- Export functions --------------------
13
14 function getFriendsList (url, end) {
15 const path = '/api/v1/pods/'
16
17 request(url)
18 .get(path)
19 .set('Accept', 'application/json')
20 .expect(200)
21 .expect('Content-Type', /json/)
22 .end(end)
23 }
24
25 function makeFriends (url, accessToken, expectedStatus, end) {
26 if (!end) {
27 end = expectedStatus
28 expectedStatus = 204
29 }
30
31 // Which pod makes friends with which pod
32 const friendsMatrix = {
33 'http://localhost:9001': [
34 'localhost:9002'
35 ],
36 'http://localhost:9002': [
37 'localhost:9003'
38 ],
39 'http://localhost:9003': [
40 'localhost:9001'
41 ],
42 'http://localhost:9004': [
43 'localhost:9002'
44 ],
45 'http://localhost:9005': [
46 'localhost:9001',
47 'localhost:9004'
48 ],
49 'http://localhost:9006': [
50 'localhost:9001',
51 'localhost:9002',
52 'localhost:9003'
53 ]
54 }
55 const path = '/api/v1/pods/makefriends'
56
57 // The first pod make friend with the third
58 request(url)
59 .post(path)
60 .set('Accept', 'application/json')
61 .set('Authorization', 'Bearer ' + accessToken)
62 .send({ 'hosts': friendsMatrix[url] })
63 .expect(expectedStatus)
64 .end(function (err, res) {
65 if (err) throw err
66
67 // Wait for the request between pods
68 setTimeout(end, 1000)
69 })
70 }
71
72 function quitFriends (url, accessToken, expectedStatus, end) {
73 if (!end) {
74 end = expectedStatus
75 expectedStatus = 204
76 }
77
78 const path = '/api/v1/pods/quitfriends'
79
80 // The first pod make friend with the third
81 request(url)
82 .get(path)
83 .set('Accept', 'application/json')
84 .set('Authorization', 'Bearer ' + accessToken)
85 .expect(expectedStatus)
86 .end(function (err, res) {
87 if (err) throw err
88
89 // Wait for the request between pods
90 setTimeout(end, 1000)
91 })
92 }
93
94 function quitOneFriend (url, accessToken, friendId, expectedStatus, end) {
95 if (!end) {
96 end = expectedStatus
97 expectedStatus = 204
98 }
99
100 const path = '/api/v1/pods/' + friendId
101
102 request(url)
103 .delete(path)
104 .set('Accept', 'application/json')
105 .set('Authorization', 'Bearer ' + accessToken)
106 .expect(expectedStatus)
107 .end(function (err, res) {
108 if (err) throw err
109
110 end()
111 })
112 }
113
114 // ---------------------------------------------------------------------------
115
116 module.exports = podsUtils