@dossierhq/integration-test
Version:
Integration test to ensure that different Dossier database adapters work as expected.
31 lines • 1.7 kB
JavaScript
/// <reference types="./AdvisoryLockAcquireSubSuite.d.ts" />
import { ErrorType } from '@dossierhq/core';
import { assertEquals, assertErrorResult, assertOkResult } from '../Asserts.js';
export const AdvisoryLockAcquireSubSuite = [
acquireLock_minimal,
acquireLock_errorConflictIfAlreadyAcquired,
acquireLock_errorReadonlySession,
];
async function acquireLock_minimal({ clientProvider }) {
const client = clientProvider.dossierClient();
const result = await client.acquireAdvisoryLock('acquireLock_minimal', { leaseDuration: 1 });
assertOkResult(result);
const { name, handle } = result.value;
assertEquals(name, 'acquireLock_minimal');
assertEquals(typeof handle, 'number');
}
async function acquireLock_errorConflictIfAlreadyAcquired({ clientProvider, }) {
const client = clientProvider.dossierClient();
const firstResult = await client.acquireAdvisoryLock('acquireLock_errorConflictIfAlreadyAcquired', { leaseDuration: 500 });
assertOkResult(firstResult);
const secondResult = await client.acquireAdvisoryLock('acquireLock_errorConflictIfAlreadyAcquired', { leaseDuration: 500 });
assertErrorResult(secondResult, ErrorType.Conflict, "Lock with name 'acquireLock_errorConflictIfAlreadyAcquired' already exists");
}
async function acquireLock_errorReadonlySession({ clientProvider }) {
const client = clientProvider.dossierClient('main', 'readonly');
const result = await client.acquireAdvisoryLock('acquireLock_errorReadonlySession', {
leaseDuration: 1,
});
assertErrorResult(result, ErrorType.BadRequest, 'Readonly session used to acquire advisory lock');
}
//# sourceMappingURL=AdvisoryLockAcquireSubSuite.js.map