]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/tests/api/users.js
Remove the cache middleware
[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
bc503c2a
C
15 let accessToken = null
16 let videoId
0c1cbbfe
C
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) {
bc503c2a
C
81 accessToken = 'mysupertoken'
82 utils.uploadVideo(server.url, accessToken, 'my super name', 'my super description', 'video_short.webm', 401, done)
0c1cbbfe
C
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
bc503c2a 89 accessToken = res.body.access_token
0c1cbbfe
C
90 done()
91 })
92 })
93
94 it('Should upload the video with the correct token', function (done) {
bc503c2a 95 utils.uploadVideo(server.url, accessToken, 'my super name', 'my super description', 'video_short.webm', 204, function (err, res) {
0c1cbbfe
C
96 if (err) throw err
97
98 utils.getVideosList(server.url, function (err, res) {
99 if (err) throw err
100
6d8ada5f
C
101 const video = res.body[0]
102 expect(video.author).to.equal('root')
103
bc503c2a 104 videoId = video.id
0c1cbbfe
C
105 done()
106 })
107 })
108 })
109
110 it('Should upload the video again with the correct token', function (done) {
bc503c2a 111 utils.uploadVideo(server.url, accessToken, 'my super name 2', 'my super description 2', 'video_short.webm', 204, done)
0c1cbbfe
C
112 })
113
114 it('Should not be able to remove the video with an incorrect token', function (done) {
bc503c2a 115 utils.removeVideo(server.url, 'bad_token', videoId, 401, done)
0c1cbbfe
C
116 })
117
118 it('Should not be able to remove the video with the token of another account')
119
120 it('Should be able to remove the video with the correct token', function (done) {
bc503c2a 121 utils.removeVideo(server.url, accessToken, videoId, done)
0c1cbbfe
C
122 })
123
124 it('Should logout')
125
126 it('Should not be able to upload a video')
127
128 it('Should not be able to remove a video')
129
130 it('Should be able to login again')
131
132 after(function (done) {
133 process.kill(-server.app.pid)
134
135 // Keep the logs if the test failed
136 if (this.ok) {
137 utils.flushTests(done)
138 } else {
139 done()
140 }
141 })
142})