@dossierhq/integration-test
Version:
Integration test to ensure that different Dossier database adapters work as expected.
47 lines • 2.4 kB
JavaScript
/// <reference types="./AuthTestSuite.d.ts" />
import { ErrorType } from '@dossierhq/core';
import { assertErrorResult, assertOkResult, assertSame } from '../Asserts.js';
import { buildSuite } from '../Builder.js';
export function createAuthTestSuite(initializer) {
return buildSuite(initializer, createSession_create_new_identifier, createSession_create_existing_identifier, createSession_error_missing_provider, createSession_error_create_missing_identifier, createSession_error_invalid_default_auth_key);
}
function randomIdentifier() {
return Math.random().toString();
}
async function createSession(server, options) {
return await server.createSession({
provider: options?.provider ?? 'test',
identifier: options?.identifier ?? randomIdentifier(),
defaultAuthKeys: options?.defaultAuthKeys ?? [''],
});
}
async function createSession_create_new_identifier({ server }) {
const result = await createSession(server);
assertOkResult(result);
const { principalEffect } = result.value;
assertSame(principalEffect, 'created');
}
async function createSession_create_existing_identifier({ server }) {
const identifier = randomIdentifier();
const firstResult = await createSession(server, { identifier });
assertOkResult(firstResult);
const { principalEffect: principalEffect1 } = firstResult.value;
assertSame(principalEffect1, 'created');
const secondResult = await createSession(server, { identifier });
assertOkResult(secondResult);
const { principalEffect: principalEffect2 } = secondResult.value;
assertSame(principalEffect2, 'none');
}
async function createSession_error_missing_provider({ server }) {
const result = await createSession(server, { provider: '' });
assertErrorResult(result, ErrorType.BadRequest, 'Missing provider');
}
async function createSession_error_create_missing_identifier({ server }) {
const result = await createSession(server, { identifier: '' });
assertErrorResult(result, ErrorType.BadRequest, 'Missing identifier');
}
async function createSession_error_invalid_default_auth_key({ server }) {
const result = await createSession(server, { defaultAuthKeys: ['', ' starting whitespace'] });
assertErrorResult(result, ErrorType.BadRequest, 'Invalid authKey ( starting whitespace), can’t start with whitespace');
}
//# sourceMappingURL=AuthTestSuite.js.map