@dossierhq/integration-test
Version:
Integration test to ensure that different Dossier database adapters work as expected.
52 lines • 1.68 kB
JavaScript
/// <reference types="./TestClients.d.ts" />
const principals = {
main: {
provider: 'test',
identifier: 'main',
defaultAuthKeys: [''],
},
secondary: {
provider: 'test',
identifier: 'secondary',
defaultAuthKeys: [''],
},
random: {
provider: 'test',
identifier: 'random',
defaultAuthKeys: [''],
},
};
async function sessionForPrincipal(server, principal, sessionType) {
principal ??= 'main';
const principalConfig = { ...principals[principal] };
let identifier = principalConfig.identifier;
if (identifier === 'random') {
identifier = `random-${Math.random()}`;
}
return await server.createSession({
...principalConfig,
identifier,
readonly: sessionType === 'readonly',
});
}
export function createDossierClientProvider(server) {
return {
dossierClient(principal, sessionType) {
const sessionResult = sessionForPrincipal(server, principal, sessionType);
return server.createDossierClient(() => sessionResult);
},
};
}
export function createSharedDossierClientProvider(server) {
return {
dossierClient(principal, sessionType) {
const sessionResult = sessionForPrincipal(server, principal, sessionType);
return server.createDossierClient(() => sessionResult);
},
publishedClient(principal, sessionType) {
const sessionResult = sessionForPrincipal(server, principal, sessionType);
return server.createPublishedDossierClient(() => sessionResult);
},
};
}
//# sourceMappingURL=TestClients.js.map