]>
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 expect(result
).to
.be
.an('array')
29 expect(result
.length
).to
.equal(2)
31 const resultUrls
= [ result
[0].url
, result
[1].url
]
32 expect(resultUrls
[0]).to
.not
.equal(resultUrls
[1])
34 const errorString
= 'Friends url do not correspond for ' + serverToTest
.url
35 expect(friends
).to
.contain(resultUrls
[0], errorString
)
36 expect(friends
).to
.contain(resultUrls
[1], errorString
)
41 // ---------------------------------------------------------------
43 before(function (done
) {
45 utils
.flushAndRunMultipleServers(3, function (serversRun
, urlsRun
) {
48 async
.each(servers
, function (server
, callbackEach
) {
49 utils
.loginAndGetAccessToken(server
, function (err
, accessToken
) {
50 if (err
) return callbackEach(err
)
52 server
.accessToken
= accessToken
59 it('Should not have friends', function (done
) {
60 async
.each(servers
, function (server
, callback
) {
61 utils
.getFriendsList(server
.url
, function (err
, res
) {
64 const result
= res
.body
65 expect(result
).to
.be
.an('array')
66 expect(result
.length
).to
.equal(0)
72 it('Should make friends', function (done
) {
76 // The second pod make friend with the third
80 // Wait for the request between pods
82 setTimeout(next
, 1000)
84 // The second pod should have the third as a friend
86 utils
.getFriendsList(servers
[1].url
, function (err
, res
) {
89 const result
= res
.body
90 expect(result
).to
.be
.an('array')
91 expect(result
.length
).to
.equal(1)
92 expect(result
[0].url
).to
.be
.equal(servers
[2].url
)
97 // Same here, the third pod should have the second pod as a friend
99 utils
.getFriendsList(servers
[2].url
, function (err
, res
) {
102 const result
= res
.body
103 expect(result
).to
.be
.an('array')
104 expect(result
.length
).to
.equal(1)
105 expect(result
[0].url
).to
.be
.equal(servers
[1].url
)
110 // Finally the first pod make friend with the second pod
114 // Wait for the request between pods
116 setTimeout(next
, 1000)
119 // Now each pod should be friend with the other ones
122 async
.each(servers
, function (server
, callback
) {
123 testMadeFriends(servers
, server
, callback
)
128 it('Should not be allowed to make friend again', function (done
) {
129 const server
= servers
[1]
130 utils
.makeFriends(server
.url
, server
.accessToken
, 409, done
)
133 it('Should quit friends of pod 2', function (done
) {
135 // Pod 1 quit friends
137 const server
= servers
[1]
138 utils
.quitFriends(server
.url
, server
.accessToken
, next
)
140 // Pod 1 should not have friends anymore
142 utils
.getFriendsList(servers
[1].url
, function (err
, res
) {
145 const result
= res
.body
146 expect(result
).to
.be
.an('array')
147 expect(result
.length
).to
.equal(0)
152 // Other pods shouldn't have pod 1 too
154 async
.each([ servers
[0].url
, servers
[2].url
], function (url
, callback
) {
155 utils
.getFriendsList(url
, function (err
, res
) {
158 const result
= res
.body
159 expect(result
).to
.be
.an('array')
160 expect(result
.length
).to
.equal(1)
161 expect(result
[0].url
).not
.to
.be
.equal(servers
[1].url
)
169 it('Should allow pod 2 to make friend again', function (done
) {
170 const server
= servers
[1]
171 utils
.makeFriends(server
.url
, server
.accessToken
, function () {
172 async
.each(servers
, function (server
, callback
) {
173 testMadeFriends(servers
, server
, callback
)
178 after(function (done
) {
179 servers
.forEach(function (server
) {
180 process
.kill(-server
.app
.pid
)
184 utils
.flushTests(done
)