]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/tests/api/users.js
Don't forget to test the client stuffs
[github/Chocobozzz/PeerTube.git] / server / tests / api / users.js
CommitLineData
0c1cbbfe
C
1'use strict'
2
3const async = require('async')
4const chai = require('chai')
5const expect = chai.expect
6const pathUtils = require('path')
7
8const webtorrent = require(pathUtils.join(__dirname, '../../lib/webtorrent'))
9webtorrent.silent = true
10
11const utils = require('./utils')
12
13describe('Test users', function () {
14 let server = null
15 let access_token = null
16 let video_id
17
18 before(function (done) {
19 this.timeout(20000)
20
21 async.series([
22 function (next) {
23 utils.flushTests(next)
24 },
25 function (next) {
26 utils.runServer(1, function (server1) {
27 server = server1
28 next()
29 })
30 }
31 ], done)
32 })
33
b0ec596c
C
34 it('Should create a new client')
35
36 it('Should return the first client')
37
38 it('Should remove the last client')
39
0c1cbbfe
C
40 it('Should not login with an invalid client id', function (done) {
41 const client = { id: 'client', password: server.client.secret }
42 utils.login(server.url, client, server.user, 400, function (err, res) {
43 if (err) throw err
44
45 expect(res.body.error).to.equal('invalid_client')
46 done()
47 })
48 })
49
50 it('Should not login with an invalid client password', function (done) {
51 const client = { id: server.client.id, password: 'coucou' }
52 utils.login(server.url, client, server.user, 400, function (err, res) {
53 if (err) throw err
54
55 expect(res.body.error).to.equal('invalid_client')
56 done()
57 })
58 })
59
60 it('Should not login with an invalid username', function (done) {
61 const user = { username: 'captain crochet', password: server.user.password }
62 utils.login(server.url, server.client, user, 400, function (err, res) {
63 if (err) throw err
64
65 expect(res.body.error).to.equal('invalid_grant')
66 done()
67 })
68 })
69
70 it('Should not login with an invalid password', function (done) {
71 const user = { username: server.user.username, password: 'mewthree' }
72 utils.login(server.url, server.client, user, 400, function (err, res) {
73 if (err) throw err
74
75 expect(res.body.error).to.equal('invalid_grant')
76 done()
77 })
78 })
79
80 it('Should not be able to upload a video', function (done) {
81 access_token = 'mysupertoken'
82 utils.uploadVideo(server.url, access_token, 'my super name', 'my super description', 'video_short.webm', 401, done)
83 })
84
85 it('Should be able to login', function (done) {
86 utils.login(server.url, server.client, server.user, 200, function (err, res) {
87 if (err) throw err
88
89 access_token = res.body.access_token
90 done()
91 })
92 })
93
94 it('Should upload the video with the correct token', function (done) {
95 utils.uploadVideo(server.url, access_token, 'my super name', 'my super description', 'video_short.webm', 204, function (err, res) {
96 if (err) throw err
97
98 utils.getVideosList(server.url, function (err, res) {
99 if (err) throw err
100
101 video_id = res.body[0].id
102 done()
103 })
104 })
105 })
106
107 it('Should upload the video again with the correct token', function (done) {
108 utils.uploadVideo(server.url, access_token, 'my super name 2', 'my super description 2', 'video_short.webm', 204, done)
109 })
110
111 it('Should not be able to remove the video with an incorrect token', function (done) {
112 utils.removeVideo(server.url, 'bad_token', video_id, 401, done)
113 })
114
115 it('Should not be able to remove the video with the token of another account')
116
117 it('Should be able to remove the video with the correct token', function (done) {
118 utils.removeVideo(server.url, access_token, video_id, done)
119 })
120
121 it('Should logout')
122
123 it('Should not be able to upload a video')
124
125 it('Should not be able to remove a video')
126
127 it('Should be able to login again')
128
129 after(function (done) {
130 process.kill(-server.app.pid)
131
132 // Keep the logs if the test failed
133 if (this.ok) {
134 utils.flushTests(done)
135 } else {
136 done()
137 }
138 })
139})