UNPKG

@dossierhq/integration-test

Version:

Integration test to ensure that different Dossier database adapters work as expected.

47 lines 2.4 kB
/// <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