UNPKG

@dossierhq/integration-test

Version:

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

41 lines 2.18 kB
/// <reference types="./AdvisoryLockRenewSubSuite.d.ts" /> import { ErrorType } from '@dossierhq/core'; import { assertEquals, assertErrorResult, assertOkResult } from '../Asserts.js'; export const AdvisoryLockRenewSubSuite = [ renewLock_minimal, renewLock_errorInvalidName, renewLock_errorInvalidHandle, renewLock_errorReadonlySession, ]; async function renewLock_minimal({ clientProvider }) { const client = clientProvider.dossierClient(); const acquireResult = await client.acquireAdvisoryLock('renewLock_minimal', { leaseDuration: 500, }); assertOkResult(acquireResult); const renewResult = await client.renewAdvisoryLock('renewLock_minimal', acquireResult.value.handle); assertOkResult(renewResult); const { name } = renewResult.value; assertEquals(name, 'renewLock_minimal'); assertEquals(acquireResult.value.handle, renewResult.value.handle); } async function renewLock_errorInvalidName({ clientProvider }) { const client = clientProvider.dossierClient(); const renewResult = await client.renewAdvisoryLock('renewLock_errorInvalidName', 123); assertErrorResult(renewResult, ErrorType.NotFound, "Failed renewing lock, no advisory lock with the name 'renewLock_errorInvalidName' exists"); } async function renewLock_errorInvalidHandle({ clientProvider }) { const client = clientProvider.dossierClient(); const acquireResult = await client.acquireAdvisoryLock('renewLock_errorInvalidHandle', { leaseDuration: 500, }); assertOkResult(acquireResult); const renewResult = await client.renewAdvisoryLock('renewLock_errorInvalidHandle', acquireResult.value.handle + 1); assertErrorResult(renewResult, ErrorType.NotFound, "Invalid handle used for renewing lock 'renewLock_errorInvalidHandle'"); } async function renewLock_errorReadonlySession({ clientProvider }) { const client = clientProvider.dossierClient('main', 'readonly'); const result = await client.renewAdvisoryLock('renewLock_errorReadonlySession', 123); assertErrorResult(result, ErrorType.BadRequest, 'Readonly session used to renew advisory lock'); } //# sourceMappingURL=AdvisoryLockRenewSubSuite.js.map