Merge branch 'develop' of https://github.com/Chocobozzz/PeerTube into move-utils...
[oweals/peertube.git] / server / tests / misc-endpoints.ts
1 /* tslint:disable:no-unused-expression */
2
3 import 'mocha'
4 import * as chai from 'chai'
5 import { flushTests, killallServers, makeGetRequest, runServer, ServerInfo } from '../../shared/utils'
6
7 const expect = chai.expect
8
9 describe('Test misc endpoints', function () {
10   let server: ServerInfo
11
12   before(async function () {
13     this.timeout(120000)
14
15     await flushTests()
16
17     server = await runServer(1)
18   })
19
20   describe('Test a well known endpoints', function () {
21
22     it('Should get security.txt', async function () {
23       const res = await makeGetRequest({
24         url: server.url,
25         path: '/.well-known/security.txt',
26         statusCodeExpected: 200
27       })
28
29       expect(res.text).to.contain('security issue')
30     })
31
32     it('Should get nodeinfo', async function () {
33       const res = await makeGetRequest({
34         url: server.url,
35         path: '/.well-known/nodeinfo',
36         statusCodeExpected: 200
37       })
38
39       expect(res.body.links).to.be.an('array')
40       expect(res.body.links).to.have.lengthOf(1)
41       expect(res.body.links[0].rel).to.equal('http://nodeinfo.diaspora.software/ns/schema/2.0')
42     })
43
44     it('Should get dnt policy text', async function () {
45       const res = await makeGetRequest({
46         url: server.url,
47         path: '/.well-known/dnt-policy.txt',
48         statusCodeExpected: 200
49       })
50
51       expect(res.text).to.contain('http://www.w3.org/TR/tracking-dnt')
52     })
53
54     it('Should get dnt policy', async function () {
55       const res = await makeGetRequest({
56         url: server.url,
57         path: '/.well-known/dnt',
58         statusCodeExpected: 200
59       })
60
61       expect(res.body.tracking).to.equal('N')
62     })
63   })
64
65   describe('Test classic static endpoints', function () {
66
67     it('Should get robots.txt', async function () {
68       const res = await makeGetRequest({
69         url: server.url,
70         path: '/robots.txt',
71         statusCodeExpected: 200
72       })
73
74       expect(res.text).to.contain('User-agent')
75     })
76
77     it('Should get security.txt', async function () {
78       await makeGetRequest({
79         url: server.url,
80         path: '/security.txt',
81         statusCodeExpected: 301
82       })
83     })
84
85     it('Should get nodeinfo', async function () {
86       const res = await makeGetRequest({
87         url: server.url,
88         path: '/nodeinfo/2.0.json',
89         statusCodeExpected: 200
90       })
91
92       expect(res.body.software.name).to.equal('peertube')
93     })
94   })
95
96   after(async function () {
97     killallServers([ server ])
98   })
99 })