Add previews cache system between pods
[oweals/peertube.git] / server / tests / client.js
1 /* eslint-disable no-unused-expressions */
2
3 'use strict'
4
5 const chai = require('chai')
6 const expect = chai.expect
7 const request = require('supertest')
8 const series = require('async/series')
9
10 const loginUtils = require('./utils/login')
11 const serversUtils = require('./utils/servers')
12 const videosUtils = require('./utils/videos')
13
14 describe('Test a client controllers', function () {
15   let server = null
16
17   before(function (done) {
18     this.timeout(120000)
19
20     series([
21       function (next) {
22         serversUtils.flushTests(next)
23       },
24       function (next) {
25         serversUtils.runServer(1, function (server1) {
26           server = server1
27           next()
28         })
29       },
30       function (next) {
31         loginUtils.loginAndGetAccessToken(server, function (err, token) {
32           if (err) throw err
33           server.accessToken = token
34           next()
35         })
36       },
37       function (next) {
38         const videoAttributes = {
39           name: 'my super name for pod 1',
40           description: 'my super description for pod 1'
41         }
42         videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next)
43       },
44       function (next) {
45         videosUtils.getVideosList(server.url, function (err, res) {
46           if (err) throw err
47
48           const videos = res.body.data
49
50           expect(videos.length).to.equal(1)
51
52           server.video = videos[0]
53
54           next()
55         })
56       }
57     ], done)
58   })
59
60   it('It should have valid opengraph tags on the watch page with video id', function (done) {
61     request(server.url)
62       .get('/videos/watch/' + server.video.id)
63       .expect(200, function (err, res) {
64         if (err) throw err
65
66         expect(res.text).to.contain('<meta property="og:title" content="my super name for pod 1" />')
67         expect(res.text).to.contain('<meta property="og:description" content="my super description for pod 1" />')
68
69         done()
70       })
71   })
72
73   it('It should have valid opengraph tags on the watch page with video uuid', function (done) {
74     request(server.url)
75       .get('/videos/watch/' + server.video.uuid)
76       .expect(200, function (err, res) {
77         if (err) throw err
78
79         expect(res.text).to.contain('<meta property="og:title" content="my super name for pod 1" />')
80         expect(res.text).to.contain('<meta property="og:description" content="my super description for pod 1" />')
81
82         done()
83       })
84   })
85
86   after(function (done) {
87     process.kill(-server.app.pid)
88
89     // Keep the logs if the test failed
90     if (this.ok) {
91       serversUtils.flushTests(done)
92     } else {
93       done()
94     }
95   })
96 })