]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/utils/login.js
Move video file metadata in their own table
[github/Chocobozzz/PeerTube.git] / server / tests / utils / login.js
1 'use strict'
2
3 const request = require('supertest')
4
5 const loginUtils = {
6 login,
7 loginAndGetAccessToken,
8 getUserAccessToken
9 }
10
11 // ---------------------- Export functions --------------------
12
13 function login (url, client, user, expectedStatus, end) {
14 if (!end) {
15 end = expectedStatus
16 expectedStatus = 200
17 }
18
19 const path = '/api/v1/users/token'
20
21 const body = {
22 client_id: client.id,
23 client_secret: client.secret,
24 username: user.username,
25 password: user.password,
26 response_type: 'code',
27 grant_type: 'password',
28 scope: 'upload'
29 }
30
31 request(url)
32 .post(path)
33 .type('form')
34 .send(body)
35 .expect(expectedStatus)
36 .end(end)
37 }
38
39 function loginAndGetAccessToken (server, callback) {
40 login(server.url, server.client, server.user, 200, function (err, res) {
41 if (err) return callback(err)
42
43 return callback(null, res.body.access_token)
44 })
45 }
46
47 function getUserAccessToken (server, user, callback) {
48 login(server.url, server.client, user, 200, function (err, res) {
49 if (err) return callback(err)
50
51 return callback(null, res.body.access_token)
52 })
53 }
54
55 // ---------------------------------------------------------------------------
56
57 module.exports = loginUtils