Files
directus/api/tests/utils/is-directus-jwt.test.ts
Rijk van Zanten eea9f45624 Add authenticate hook to implement custom auth checks against current request (#11942)
* Add "authenticate" filter hook that allows custom auth check

* Start on test

* Update Jest, restructure API tests, start implementing authenticate test

* Move access token verify to util function

* Ensure jest can show inline warnings on correct lines

* Update is-directus-jwt to use jsonwebtoken decode + add tests

* Remove unused package

* Tweak and finish + test authenticate

* Tweak test

* Add authenticate filter to docs

* Don't scan tests for codeql

* No seriously, ignore tests
2022-03-03 16:29:13 -05:00

26 lines
836 B
TypeScript

import isDirectusJWT from '../../src/utils/is-directus-jwt';
import jwt from 'jsonwebtoken';
test('Returns false for non JWT string', () => {
const result = isDirectusJWT('test');
expect(result).toBe(false);
});
test('Returns false for JWTs with text payload', () => {
const token = jwt.sign('plaintext', 'secret');
const result = isDirectusJWT(token);
expect(result).toBe(false);
});
test(`Returns false if token issuer isn't "directus"`, () => {
const token = jwt.sign({ payload: 'content' }, 'secret', { issuer: 'rijk' });
const result = isDirectusJWT(token);
expect(result).toBe(false);
});
test(`Returns true if token is valid JWT and issuer is "directus"`, () => {
const token = jwt.sign({ payload: 'content' }, 'secret', { issuer: 'directus' });
const result = isDirectusJWT(token);
expect(result).toBe(true);
});