]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/friendsBasic.js
Authenticate before make/quit friends (server + tests)
[github/Chocobozzz/PeerTube.git] / server / tests / api / friendsBasic.js
index 62eac51ec1a1a63576e2058dd684bacbb359c103..68817e8524ad623b218a725fb6d688ebc748f575 100644 (file)
@@ -3,33 +3,36 @@
 const async = require('async')
 const chai = require('chai')
 const expect = chai.expect
-const request = require('supertest')
 
 const utils = require('./utils')
 
 describe('Test basic friends', function () {
-  let apps = []
-  let urls = []
+  let servers = []
 
-  function testMadeFriends (urls, url_to_test, callback) {
+  function makeFriends (podNumber, callback) {
+    const server = servers[podNumber - 1]
+    return utils.makeFriends(server.url, server.accessToken, callback)
+  }
+
+  function testMadeFriends (servers, serverToTest, callback) {
     const friends = []
-    for (let i = 0; i < urls.length; i++) {
-      if (urls[i] === url_to_test) continue
-      friends.push(urls[i])
+    for (let i = 0; i < servers.length; i++) {
+      if (servers[i].url === serverToTest.url) continue
+      friends.push(servers[i].url)
     }
 
-    utils.getFriendsList(url_to_test, function (err, res) {
+    utils.getFriendsList(serverToTest.url, function (err, res) {
       if (err) throw err
 
       const result = res.body
-      const result_urls = [ result[0].url, result[1].url ]
+      const resultUrls = [ result[0].url, result[1].url ]
       expect(result).to.be.an('array')
       expect(result.length).to.equal(2)
-      expect(result_urls[0]).to.not.equal(result_urls[1])
+      expect(resultUrls[0]).to.not.equal(resultUrls[1])
 
-      const error_string = 'Friends url do not correspond for ' + url_to_test
-      expect(friends).to.contain(result_urls[0], error_string)
-      expect(friends).to.contain(result_urls[1], error_string)
+      const errorString = 'Friends url do not correspond for ' + serverToTest.url
+      expect(friends).to.contain(resultUrls[0], errorString)
+      expect(friends).to.contain(resultUrls[1], errorString)
       callback()
     })
   }
@@ -38,16 +41,23 @@ describe('Test basic friends', function () {
 
   before(function (done) {
     this.timeout(20000)
-    utils.flushAndRunMultipleServers(3, function (apps_run, urls_run) {
-      apps = apps_run
-      urls = urls_run
-      done()
+    utils.flushAndRunMultipleServers(3, function (serversRun, urlsRun) {
+      servers = serversRun
+
+      async.each(servers, function (server, callbackEach) {
+        utils.loginAndGetAccessToken(server, function (err, accessToken) {
+          if (err) return callbackEach(err)
+
+          server.accessToken = accessToken
+          callbackEach()
+        })
+      }, done)
     })
   })
 
   it('Should not have friends', function (done) {
-    async.each(urls, function (url, callback) {
-      utils.getFriendsList(url, function (err, res) {
+    async.each(servers, function (server, callback) {
+      utils.getFriendsList(server.url, function (err, res) {
         if (err) throw err
 
         const result = res.body
@@ -61,16 +71,10 @@ describe('Test basic friends', function () {
   it('Should make friends', function (done) {
     this.timeout(10000)
 
-    const path = '/api/v1/pods/makefriends'
-
     async.series([
       // The second pod make friend with the third
       function (next) {
-        request(urls[1])
-          .get(path)
-          .set('Accept', 'application/json')
-          .expect(204)
-          .end(next)
+        makeFriends(2, next)
       },
       // Wait for the request between pods
       function (next) {
@@ -78,37 +82,33 @@ describe('Test basic friends', function () {
       },
       // The second pod should have the third as a friend
       function (next) {
-        utils.getFriendsList(urls[1], function (err, res) {
+        utils.getFriendsList(servers[1].url, function (err, res) {
           if (err) throw err
 
           const result = res.body
           expect(result).to.be.an('array')
           expect(result.length).to.equal(1)
-          expect(result[0].url).to.be.equal(urls[2])
+          expect(result[0].url).to.be.equal(servers[2].url)
 
           next()
         })
       },
       // Same here, the third pod should have the second pod as a friend
       function (next) {
-        utils.getFriendsList(urls[2], function (err, res) {
+        utils.getFriendsList(servers[2].url, function (err, res) {
           if (err) throw err
 
           const result = res.body
           expect(result).to.be.an('array')
           expect(result.length).to.equal(1)
-          expect(result[0].url).to.be.equal(urls[1])
+          expect(result[0].url).to.be.equal(servers[1].url)
 
           next()
         })
       },
       // Finally the first pod make friend with the second pod
       function (next) {
-        request(urls[0])
-          .get(path)
-          .set('Accept', 'application/json')
-          .expect(204)
-          .end(next)
+        makeFriends(1, next)
       },
       // Wait for the request between pods
       function (next) {
@@ -118,25 +118,27 @@ describe('Test basic friends', function () {
     // Now each pod should be friend with the other ones
     function (err) {
       if (err) throw err
-      async.each(urls, function (url, callback) {
-        testMadeFriends(urls, url, callback)
+      async.each(servers, function (server, callback) {
+        testMadeFriends(servers, server, callback)
       }, done)
     })
   })
 
   it('Should not be allowed to make friend again', function (done) {
-    utils.makeFriends(urls[1], 409, done)
+    const server = servers[1]
+    utils.makeFriends(server.url, server.accessToken, 409, done)
   })
 
   it('Should quit friends of pod 2', function (done) {
     async.series([
       // Pod 1 quit friends
       function (next) {
-        utils.quitFriends(urls[1], next)
+        const server = servers[1]
+        utils.quitFriends(server.url, server.accessToken, next)
       },
       // Pod 1 should not have friends anymore
       function (next) {
-        utils.getFriendsList(urls[1], function (err, res) {
+        utils.getFriendsList(servers[1].url, function (err, res) {
           if (err) throw err
 
           const result = res.body
@@ -148,14 +150,14 @@ describe('Test basic friends', function () {
       },
       // Other pods shouldn't have pod 1 too
       function (next) {
-        async.each([ urls[0], urls[2] ], function (url, callback) {
+        async.each([ servers[0].url, servers[2].url ], function (url, callback) {
           utils.getFriendsList(url, function (err, res) {
             if (err) throw err
 
             const result = res.body
             expect(result).to.be.an('array')
             expect(result.length).to.equal(1)
-            expect(result[0].url).not.to.be.equal(urls[1])
+            expect(result[0].url).not.to.be.equal(servers[1].url)
             callback()
           })
         }, next)
@@ -164,16 +166,17 @@ describe('Test basic friends', function () {
   })
 
   it('Should allow pod 2 to make friend again', function (done) {
-    utils.makeFriends(urls[1], function () {
-      async.each(urls, function (url, callback) {
-        testMadeFriends(urls, url, callback)
+    const server = servers[1]
+    utils.makeFriends(server.url, server.accessToken, function () {
+      async.each(servers, function (server, callback) {
+        testMadeFriends(servers, server, callback)
       }, done)
     })
   })
 
   after(function (done) {
-    apps.forEach(function (app) {
-      process.kill(-app.pid)
+    servers.forEach(function (server) {
+      process.kill(-server.app.pid)
     })
 
     if (this.ok) {