]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Add tests regarding well known/static text endpoints
authorChocobozzz <me@florianbigard.com>
Mon, 1 Oct 2018 15:26:51 +0000 (17:26 +0200)
committerChocobozzz <me@florianbigard.com>
Mon, 1 Oct 2018 15:29:11 +0000 (17:29 +0200)
scripts/travis.sh
server/tests/misc-endpoints.ts [new file with mode: 0644]

index f9fd195125f6f9a9da710c12842a2cd9e2d4bc18..5d195f902baae8f3de4abc6b52ff1fa4eedcb9a9 100755 (executable)
@@ -12,7 +12,7 @@ killall -q peertube || true
 if [ "$1" = "misc" ]; then
     npm run build -- --light-fr
     mocha --timeout 5000 --exit --require ts-node/register/type-check --bail server/tests/client.ts server/tests/activitypub.ts \
-        server/tests/feeds/index.ts
+        server/tests/feeds/index.ts server/tests/misc-endpoints.ts
 elif [ "$1" = "api" ]; then
     npm run build:server
     mocha --timeout 5000 --exit --require ts-node/register/type-check --bail server/tests/api/index.ts
diff --git a/server/tests/misc-endpoints.ts b/server/tests/misc-endpoints.ts
new file mode 100644 (file)
index 0000000..8fab209
--- /dev/null
@@ -0,0 +1,99 @@
+/* tslint:disable:no-unused-expression */
+
+import 'mocha'
+import * as chai from 'chai'
+import { flushTests, killallServers, makeGetRequest, runServer, ServerInfo } from './utils'
+
+const expect = chai.expect
+
+describe('Test misc endpoints', function () {
+  let server: ServerInfo
+
+  before(async function () {
+    this.timeout(120000)
+
+    await flushTests()
+
+    server = await runServer(1)
+  })
+
+  describe('Test a well known endpoints', function () {
+
+    it('Should get security.txt', async function () {
+      const res = await makeGetRequest({
+        url: server.url,
+        path: '/.well-known/security.txt',
+        statusCodeExpected: 200
+      })
+
+      expect(res.text).to.contain('security issue')
+    })
+
+    it('Should get nodeinfo', async function () {
+      const res = await makeGetRequest({
+        url: server.url,
+        path: '/.well-known/nodeinfo',
+        statusCodeExpected: 200
+      })
+
+      expect(res.body.links).to.be.an('array')
+      expect(res.body.links).to.have.lengthOf(1)
+      expect(res.body.links[0].rel).to.equal('http://nodeinfo.diaspora.software/ns/schema/2.0')
+    })
+
+    it('Should get dnt policy text', async function () {
+      const res = await makeGetRequest({
+        url: server.url,
+        path: '/.well-known/dnt-policy.txt',
+        statusCodeExpected: 200
+      })
+
+      expect(res.text).to.contain('http://www.w3.org/TR/tracking-dnt')
+    })
+
+    it('Should get dnt policy', async function () {
+      const res = await makeGetRequest({
+        url: server.url,
+        path: '/.well-known/dnt',
+        statusCodeExpected: 200
+      })
+
+      expect(res.body.tracking).to.equal('N')
+    })
+  })
+
+  describe('Test classic static endpoints', function () {
+
+    it('Should get robots.txt', async function () {
+      const res = await makeGetRequest({
+        url: server.url,
+        path: '/robots.txt',
+        statusCodeExpected: 200
+      })
+
+      expect(res.text).to.contain('User-agent')
+    })
+
+    it('Should get security.txt', async function () {
+      await makeGetRequest({
+        url: server.url,
+        path: '/security.txt',
+        statusCodeExpected: 301
+      })
+    })
+
+    it('Should get nodeinfo', async function () {
+      const res = await makeGetRequest({
+        url: server.url,
+        path: '/nodeinfo/2.0.json',
+        statusCodeExpected: 200
+      })
+
+      expect(res.body.software.name).to.equal('peertube')
+    })
+  })
+
+  after(async function () {
+    killallServers([ server ])
+  })
+})