]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/friendsBasic.js
3 const async
= require('async')
4 const chai
= require('chai')
5 const expect
= chai
.expect
7 const utils
= require('./utils')
9 describe('Test basic friends', function () {
12 function makeFriends (podNumber
, callback
) {
13 const server
= servers
[podNumber
- 1]
14 return utils
.makeFriends(server
.url
, server
.accessToken
, callback
)
17 function testMadeFriends (servers
, serverToTest
, callback
) {
19 for (let i
= 0; i
< servers
.length
; i
++) {
20 if (servers
[i
].url
=== serverToTest
.url
) continue
21 friends
.push(servers
[i
].url
)
24 utils
.getFriendsList(serverToTest
.url
, function (err
, res
) {
27 const result
= res
.body
28 const resultUrls
= [ result
[0].url
, result
[1].url
]
29 expect(result
).to
.be
.an('array')
30 expect(result
.length
).to
.equal(2)
31 expect(resultUrls
[0]).to
.not
.equal(resultUrls
[1])
33 const errorString
= 'Friends url do not correspond for ' + serverToTest
.url
34 expect(friends
).to
.contain(resultUrls
[0], errorString
)
35 expect(friends
).to
.contain(resultUrls
[1], errorString
)
40 // ---------------------------------------------------------------
42 before(function (done
) {
44 utils
.flushAndRunMultipleServers(3, function (serversRun
, urlsRun
) {
47 async
.each(servers
, function (server
, callbackEach
) {
48 utils
.loginAndGetAccessToken(server
, function (err
, accessToken
) {
49 if (err
) return callbackEach(err
)
51 server
.accessToken
= accessToken
58 it('Should not have friends', function (done
) {
59 async
.each(servers
, function (server
, callback
) {
60 utils
.getFriendsList(server
.url
, function (err
, res
) {
63 const result
= res
.body
64 expect(result
).to
.be
.an('array')
65 expect(result
.length
).to
.equal(0)
71 it('Should make friends', function (done
) {
75 // The second pod make friend with the third
79 // Wait for the request between pods
81 setTimeout(next
, 1000)
83 // The second pod should have the third as a friend
85 utils
.getFriendsList(servers
[1].url
, function (err
, res
) {
88 const result
= res
.body
89 expect(result
).to
.be
.an('array')
90 expect(result
.length
).to
.equal(1)
91 expect(result
[0].url
).to
.be
.equal(servers
[2].url
)
96 // Same here, the third pod should have the second pod as a friend
98 utils
.getFriendsList(servers
[2].url
, function (err
, res
) {
101 const result
= res
.body
102 expect(result
).to
.be
.an('array')
103 expect(result
.length
).to
.equal(1)
104 expect(result
[0].url
).to
.be
.equal(servers
[1].url
)
109 // Finally the first pod make friend with the second pod
113 // Wait for the request between pods
115 setTimeout(next
, 1000)
118 // Now each pod should be friend with the other ones
121 async
.each(servers
, function (server
, callback
) {
122 testMadeFriends(servers
, server
, callback
)
127 it('Should not be allowed to make friend again', function (done
) {
128 const server
= servers
[1]
129 utils
.makeFriends(server
.url
, server
.accessToken
, 409, done
)
132 it('Should quit friends of pod 2', function (done
) {
134 // Pod 1 quit friends
136 const server
= servers
[1]
137 utils
.quitFriends(server
.url
, server
.accessToken
, next
)
139 // Pod 1 should not have friends anymore
141 utils
.getFriendsList(servers
[1].url
, function (err
, res
) {
144 const result
= res
.body
145 expect(result
).to
.be
.an('array')
146 expect(result
.length
).to
.equal(0)
151 // Other pods shouldn't have pod 1 too
153 async
.each([ servers
[0].url
, servers
[2].url
], function (url
, callback
) {
154 utils
.getFriendsList(url
, function (err
, res
) {
157 const result
= res
.body
158 expect(result
).to
.be
.an('array')
159 expect(result
.length
).to
.equal(1)
160 expect(result
[0].url
).not
.to
.be
.equal(servers
[1].url
)
168 it('Should allow pod 2 to make friend again', function (done
) {
169 const server
= servers
[1]
170 utils
.makeFriends(server
.url
, server
.accessToken
, function () {
171 async
.each(servers
, function (server
, callback
) {
172 testMadeFriends(servers
, server
, callback
)
177 after(function (done
) {
178 servers
.forEach(function (server
) {
179 process
.kill(-server
.app
.pid
)
183 utils
.flushTests(done
)