Ghost/ghost/extract-api-key/test/extract-api-key.test.js

49 lines
1.4 KiB
JavaScript
Raw Normal View History

const assert = require('assert/strict');
const extractApiKey = require('../index');
describe('Extract API Key', function () {
it('Returns nulls for a request without any key', function () {
const {key, type} = extractApiKey({
query: {
filter: 'status:active'
}
});
assert.equal(key, null);
assert.equal(type, null);
});
it('Extracts Content API key from the request', function () {
const {key, type} = extractApiKey({
query: {
key: '123thekey'
}
});
assert.equal(key, '123thekey');
assert.equal(type, 'content');
});
it('Extracts Admin API key from the request', function () {
const {key, type} = extractApiKey({
headers: {
authorization: 'Ghost eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjYyNzM4MjQzNDZiZjUxZjNhYWI5OTA5OSJ9.eyJpYXQiOjE2NTIxNjUyNDQsImV4cCI6MTY1MjE2NTU0NCwiYXVkIjoiL3YyL2FkbWluLyJ9.VdPOZ4XffgYd8qn_46zlJR3jW_rPZTw70COkG5IYIuU'
}
});
assert.equal(key, '6273824346bf51f3aab99099');
assert.equal(type, 'admin');
});
it('Returns null if malformatted Admin API Key', function () {
const {key, type} = extractApiKey({
headers: {
authorization: 'Ghost incorrectformat'
}
});
assert.equal(key, null);
assert.equal(type, 'admin');
});
});