]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/client.ts
Run videojs outside angular
[github/Chocobozzz/PeerTube.git] / server / tests / client.ts
1 /* tslint:disable:no-unused-expression */
2
3 import 'mocha'
4 import * as chai from 'chai'
5 import * as request from 'supertest'
6 const expect = chai.expect
7
8 import {
9 ServerInfo,
10 flushTests,
11 runServer,
12 serverLogin,
13 uploadVideo,
14 getVideosList
15 } from './utils'
16
17 describe('Test a client controllers', function () {
18 let server: ServerInfo
19
20 before(async function () {
21 this.timeout(120000)
22
23 await flushTests()
24
25 server = await runServer(1)
26 server.accessToken = await serverLogin(server)
27
28 const videoAttributes = {
29 name: 'my super name for server 1',
30 description: 'my super description for server 1'
31 }
32 await uploadVideo(server.url, server.accessToken, videoAttributes)
33
34 const res = await getVideosList(server.url)
35 const videos = res.body.data
36
37 expect(videos.length).to.equal(1)
38
39 server.video = videos[0]
40 })
41
42 it('Should have valid Open Graph tags on the watch page with video id', async function () {
43 const res = await request(server.url)
44 .get('/videos/watch/' + server.video.id)
45 .set('Accept', 'text/html')
46 .expect(200)
47
48 expect(res.text).to.contain('<meta property="og:title" content="my super name for server 1" />')
49 expect(res.text).to.contain('<meta property="og:description" content="my super description for server 1" />')
50 })
51
52 it('Should have valid Open Graph tags on the watch page with video uuid', async function () {
53 const res = await request(server.url)
54 .get('/videos/watch/' + server.video.uuid)
55 .set('Accept', 'text/html')
56 .expect(200)
57
58 expect(res.text).to.contain('<meta property="og:title" content="my super name for server 1" />')
59 expect(res.text).to.contain('<meta property="og:description" content="my super description for server 1" />')
60 })
61
62 it('Should have valid oEmbed discovery tags', async function () {
63 const path = '/videos/watch/' + server.video.uuid
64 const res = await request(server.url)
65 .get(path)
66 .set('Accept', 'text/html')
67 .expect(200)
68
69 const expectedLink = '<link rel="alternate" type="application/json+oembed" href="http://localhost:9001/services/oembed?' +
70 `url=http%3A%2F%2Flocalhost%3A9001%2Fvideos%2Fwatch%2F${server.video.uuid}" ` +
71 `title="${server.video.name}" />`
72
73 expect(res.text).to.contain(expectedLink)
74 })
75
76 after(async function () {
77 process.kill(-server.app.pid)
78
79 // Keep the logs if the test failed
80 if (this['ok']) {
81 await flushTests()
82 }
83 })
84 })