@dossierhq/integration-test
Version:
Integration test to ensure that different Dossier database adapters work as expected.
56 lines • 2.14 kB
JavaScript
/// <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