UNPKG

@dossierhq/integration-test

Version:

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

56 lines 2.14 kB
/// <reference types="./Asserts.d.ts" /> import { createErrorResult, isFieldValueEqual, } from '@dossierhq/core'; class AssertionError extends Error { actual; expected; constructor(actual, expected, message) { super(message); this.name = 'AssertionError'; this.actual = actual; this.expected = expected; } } export function assertTruthy(actual) { if (!actual) { throw new AssertionError(actual, true, `Expected truthy`); } } export function assertSame(actual, expected) { if (actual !== expected) { throw new AssertionError(actual, expected, `Expected same, got ${actual} !== ${expected}`); } } export function assertNotSame(actual, expected) { if (actual === expected) { throw new AssertionError(actual, expected, `Expected not same, got ${actual} === ${expected}`); } } export function assertEquals(actual, expected) { //TODO need a different name for isFieldValueEqual if (!isFieldValueEqual(actual, expected)) { throw new AssertionError(actual, expected, `Expected equals, got ${actual} !== ${expected}`); } } export function assertOkResult(actual) { if (actual.isError()) { throw new AssertionError(actual, undefined, `Expected ok, got error ${actual.error}: ${actual.message}`); } } export function assertErrorResult(actual, expectedErrorType, expectedMessage) { if (!actual.isError()) { throw new AssertionError(actual, createErrorResult(expectedErrorType, expectedMessage), `Expected error, but was ok`); } const expectedString = `${expectedErrorType}: ${expectedMessage}`; const actualString = `${actual.error}: ${actual.message}`; assertSame(actualString, expectedString); } export function assertResultValue(result, expectedValue) { assertOkResult(result); if (!isFieldValueEqual(result.value, expectedValue)) { throw new AssertionError(result.value, expectedValue, `Expected result values to equal`); } } export function assertExhaustive(param) { throw new Error(`Invalid exhaustiveness check: ${param}`); } //# sourceMappingURL=Asserts.js.map