2023-06-21 11:56:59 +03:00
|
|
|
const assert = require('assert/strict');
|
2022-05-10 07:37:05 +03:00
|
|
|
const extractApiKey = require('../index');
|
|
|
|
|
|
|
|
describe('Extract API Key', function () {
|
2022-05-10 09:44:55 +03:00
|
|
|
it('Returns nulls for a request without any key', function () {
|
2022-05-10 11:08:54 +03:00
|
|
|
const {key, type} = extractApiKey({
|
2022-05-10 09:18:38 +03:00
|
|
|
query: {
|
|
|
|
filter: 'status:active'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
assert.equal(key, null);
|
2022-05-10 11:08:54 +03:00
|
|
|
assert.equal(type, null);
|
2022-05-10 09:18:38 +03:00
|
|
|
});
|
|
|
|
|
2022-05-10 07:37:05 +03:00
|
|
|
it('Extracts Content API key from the request', function () {
|
2022-05-10 11:08:54 +03:00
|
|
|
const {key, type} = extractApiKey({
|
2022-05-10 07:37:05 +03:00
|
|
|
query: {
|
|
|
|
key: '123thekey'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
assert.equal(key, '123thekey');
|
2022-05-10 11:08:54 +03:00
|
|
|
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');
|
2022-05-10 07:37:05 +03:00
|
|
|
});
|
|
|
|
});
|