]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/activitypub/helpers.ts
shared/ typescript types dir server-commands
[github/Chocobozzz/PeerTube.git] / server / tests / api / activitypub / helpers.ts
index 365d0e1aefeba3422484148cc3d413b26cf325c2..5aa94af5d96ae572e26a69329142f07d47af27ab 100644 (file)
@@ -1,18 +1,18 @@
-/* tslint:disable:no-unused-expression */
+/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 
 import 'mocha'
 import { expect } from 'chai'
-import { buildRequestStub } from '../../../../shared/extra-utils/miscs/stubs'
-import { isHTTPSignatureVerified, isJsonLDSignatureVerified, parseHTTPSignature } from '../../../helpers/peertube-crypto'
 import { cloneDeep } from 'lodash'
+import { buildAbsoluteFixturePath, buildRequestStub } from '@shared/server-commands'
 import { buildSignedActivity } from '../../../helpers/activitypub'
+import { isHTTPSignatureVerified, isJsonLDSignatureVerified, parseHTTPSignature } from '../../../helpers/peertube-crypto'
 
 describe('Test activity pub helpers', function () {
   describe('When checking the Linked Signature', function () {
 
     it('Should fail with an invalid Mastodon signature', async function () {
-      const body = require('./json/mastodon/create-bad-signature.json')
-      const publicKey = require('./json/mastodon/public-key.json').publicKey
+      const body = require(buildAbsoluteFixturePath('./ap-json/mastodon/create-bad-signature.json'))
+      const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/public-key.json')).publicKey
       const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' }
 
       const result = await isJsonLDSignatureVerified(fromActor as any, body)
@@ -21,8 +21,8 @@ describe('Test activity pub helpers', function () {
     })
 
     it('Should fail with an invalid public key', async function () {
-      const body = require('./json/mastodon/create.json')
-      const publicKey = require('./json/mastodon/bad-public-key.json').publicKey
+      const body = require(buildAbsoluteFixturePath('./ap-json/mastodon/create.json'))
+      const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/bad-public-key.json')).publicKey
       const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' }
 
       const result = await isJsonLDSignatureVerified(fromActor as any, body)
@@ -31,8 +31,8 @@ describe('Test activity pub helpers', function () {
     })
 
     it('Should succeed with a valid Mastodon signature', async function () {
-      const body = require('./json/mastodon/create.json')
-      const publicKey = require('./json/mastodon/public-key.json').publicKey
+      const body = require(buildAbsoluteFixturePath('./ap-json/mastodon/create.json'))
+      const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/public-key.json')).publicKey
       const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' }
 
       const result = await isJsonLDSignatureVerified(fromActor as any, body)
@@ -41,8 +41,8 @@ describe('Test activity pub helpers', function () {
     })
 
     it('Should fail with an invalid PeerTube signature', async function () {
-      const keys = require('./json/peertube/invalid-keys.json')
-      const body = require('./json/peertube/announce-without-context.json')
+      const keys = require(buildAbsoluteFixturePath('./ap-json/peertube/invalid-keys.json'))
+      const body = require(buildAbsoluteFixturePath('./ap-json/peertube/announce-without-context.json'))
 
       const actorSignature = { url: 'http://localhost:9002/accounts/peertube', privateKey: keys.privateKey }
       const signedBody = await buildSignedActivity(actorSignature as any, body)
@@ -53,22 +53,9 @@ describe('Test activity pub helpers', function () {
       expect(result).to.be.false
     })
 
-    it('Should fail with an invalid PeerTube URL', async function () {
-      const keys = require('./json/peertube/keys.json')
-      const body = require('./json/peertube/announce-without-context.json')
-
-      const actorSignature = { url: 'http://localhost:9002/accounts/peertube', privateKey: keys.privateKey }
-      const signedBody = await buildSignedActivity(actorSignature as any, body)
-
-      const fromActor = { publicKey: keys.publicKey, url: 'http://localhost:9003/accounts/peertube' }
-      const result = await isJsonLDSignatureVerified(fromActor as any, signedBody)
-
-      expect(result).to.be.false
-    })
-
     it('Should succeed with a valid PeerTube signature', async function () {
-      const keys = require('./json/peertube/keys.json')
-      const body = require('./json/peertube/announce-without-context.json')
+      const keys = require(buildAbsoluteFixturePath('./ap-json/peertube/keys.json'))
+      const body = require(buildAbsoluteFixturePath('./ap-json/peertube/announce-without-context.json'))
 
       const actorSignature = { url: 'http://localhost:9002/accounts/peertube', privateKey: keys.privateKey }
       const signedBody = await buildSignedActivity(actorSignature as any, body)
@@ -86,13 +73,12 @@ describe('Test activity pub helpers', function () {
       req.method = 'POST'
       req.url = '/accounts/ronan/inbox'
 
-      const mastodonObject = cloneDeep(require('./json/mastodon/bad-http-signature.json'))
+      const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/bad-http-signature.json')))
       req.body = mastodonObject.body
       req.headers = mastodonObject.headers
-      req.headers.signature = 'Signature ' + req.headers.signature
 
       const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10)
-      const publicKey = require('./json/mastodon/public-key.json').publicKey
+      const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/public-key.json')).publicKey
 
       const actor = { publicKey }
       const verified = isHTTPSignatureVerified(parsed, actor as any)
@@ -105,13 +91,12 @@ describe('Test activity pub helpers', function () {
       req.method = 'POST'
       req.url = '/accounts/ronan/inbox'
 
-      const mastodonObject = cloneDeep(require('./json/mastodon/http-signature.json'))
+      const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/http-signature.json')))
       req.body = mastodonObject.body
       req.headers = mastodonObject.headers
-      req.headers.signature = 'Signature ' + req.headers.signature
 
       const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10)
-      const publicKey = require('./json/mastodon/bad-public-key.json').publicKey
+      const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/bad-public-key.json')).publicKey
 
       const actor = { publicKey }
       const verified = isHTTPSignatureVerified(parsed, actor as any)
@@ -124,10 +109,9 @@ describe('Test activity pub helpers', function () {
       req.method = 'POST'
       req.url = '/accounts/ronan/inbox'
 
-      const mastodonObject = cloneDeep(require('./json/mastodon/http-signature.json'))
+      const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/http-signature.json')))
       req.body = mastodonObject.body
       req.headers = mastodonObject.headers
-      req.headers.signature = 'Signature ' + req.headers.signature
 
       let errored = false
       try {
@@ -139,14 +123,15 @@ describe('Test activity pub helpers', function () {
       expect(errored).to.be.true
     })
 
-    it('Should fail without scheme', async function () {
+    it('Should with a scheme', async function () {
       const req = buildRequestStub()
       req.method = 'POST'
       req.url = '/accounts/ronan/inbox'
 
-      const mastodonObject = cloneDeep(require('./json/mastodon/http-signature.json'))
+      const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/http-signature.json')))
       req.body = mastodonObject.body
       req.headers = mastodonObject.headers
+      req.headers = 'Signature ' + mastodonObject.headers
 
       let errored = false
       try {
@@ -163,13 +148,12 @@ describe('Test activity pub helpers', function () {
       req.method = 'POST'
       req.url = '/accounts/ronan/inbox'
 
-      const mastodonObject = cloneDeep(require('./json/mastodon/http-signature.json'))
+      const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/http-signature.json')))
       req.body = mastodonObject.body
       req.headers = mastodonObject.headers
-      req.headers.signature = 'Signature ' + req.headers.signature
 
       const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10)
-      const publicKey = require('./json/mastodon/public-key.json').publicKey
+      const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/public-key.json')).publicKey
 
       const actor = { publicKey }
       const verified = isHTTPSignatureVerified(parsed, actor as any)