]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/friendsBasic.js
3 const chai
= require('chai')
4 const each
= require('async/each')
5 const expect
= chai
.expect
6 const series
= require('async/series')
8 const utils
= require('./utils')
10 describe('Test basic friends', function () {
13 function makeFriends (podNumber
, callback
) {
14 const server
= servers
[podNumber
- 1]
15 return utils
.makeFriends(server
.url
, server
.accessToken
, callback
)
18 function testMadeFriends (servers
, serverToTest
, callback
) {
20 for (let i
= 0; i
< servers
.length
; i
++) {
21 if (servers
[i
].url
=== serverToTest
.url
) continue
22 friends
.push(servers
[i
].url
)
25 utils
.getFriendsList(serverToTest
.url
, function (err
, res
) {
28 const result
= res
.body
29 expect(result
).to
.be
.an('array')
30 expect(result
.length
).to
.equal(2)
32 const resultUrls
= [ result
[0].url
, result
[1].url
]
33 expect(resultUrls
[0]).to
.not
.equal(resultUrls
[1])
35 const errorString
= 'Friends url do not correspond for ' + serverToTest
.url
36 expect(friends
).to
.contain(resultUrls
[0], errorString
)
37 expect(friends
).to
.contain(resultUrls
[1], errorString
)
42 // ---------------------------------------------------------------
44 before(function (done
) {
46 utils
.flushAndRunMultipleServers(3, function (serversRun
, urlsRun
) {
49 each(servers
, function (server
, callbackEach
) {
50 utils
.loginAndGetAccessToken(server
, function (err
, accessToken
) {
51 if (err
) return callbackEach(err
)
53 server
.accessToken
= accessToken
60 it('Should not have friends', function (done
) {
61 each(servers
, function (server
, callback
) {
62 utils
.getFriendsList(server
.url
, function (err
, res
) {
65 const result
= res
.body
66 expect(result
).to
.be
.an('array')
67 expect(result
.length
).to
.equal(0)
73 it('Should make friends', function (done
) {
77 // The second pod make friend with the third
81 // Wait for the request between pods
83 setTimeout(next
, 1000)
85 // The second pod should have the third as a friend
87 utils
.getFriendsList(servers
[1].url
, function (err
, res
) {
90 const result
= res
.body
91 expect(result
).to
.be
.an('array')
92 expect(result
.length
).to
.equal(1)
93 expect(result
[0].url
).to
.be
.equal(servers
[2].url
)
98 // Same here, the third pod should have the second pod as a friend
100 utils
.getFriendsList(servers
[2].url
, function (err
, res
) {
103 const result
= res
.body
104 expect(result
).to
.be
.an('array')
105 expect(result
.length
).to
.equal(1)
106 expect(result
[0].url
).to
.be
.equal(servers
[1].url
)
111 // Finally the first pod make friend with the second pod
115 // Wait for the request between pods
117 setTimeout(next
, 1000)
120 // Now each pod should be friend with the other ones
123 each(servers
, function (server
, callback
) {
124 testMadeFriends(servers
, server
, callback
)
129 it('Should not be allowed to make friend again', function (done
) {
130 const server
= servers
[1]
131 utils
.makeFriends(server
.url
, server
.accessToken
, 409, done
)
134 it('Should quit friends of pod 2', function (done
) {
136 // Pod 1 quit friends
138 const server
= servers
[1]
139 utils
.quitFriends(server
.url
, server
.accessToken
, next
)
141 // Pod 1 should not have friends anymore
143 utils
.getFriendsList(servers
[1].url
, function (err
, res
) {
146 const result
= res
.body
147 expect(result
).to
.be
.an('array')
148 expect(result
.length
).to
.equal(0)
153 // Other pods shouldn't have pod 1 too
155 each([ servers
[0].url
, servers
[2].url
], function (url
, callback
) {
156 utils
.getFriendsList(url
, function (err
, res
) {
159 const result
= res
.body
160 expect(result
).to
.be
.an('array')
161 expect(result
.length
).to
.equal(1)
162 expect(result
[0].url
).not
.to
.be
.equal(servers
[1].url
)
170 it('Should allow pod 2 to make friend again', function (done
) {
171 const server
= servers
[1]
172 utils
.makeFriends(server
.url
, server
.accessToken
, function () {
173 each(servers
, function (server
, callback
) {
174 testMadeFriends(servers
, server
, callback
)
179 after(function (done
) {
180 servers
.forEach(function (server
) {
181 process
.kill(-server
.app
.pid
)
185 utils
.flushTests(done
)