@dossierhq/integration-test
Version:
Integration test to ensure that different Dossier database adapters work as expected.
30 lines • 1.54 kB
JavaScript
/// <reference types="./EventsTestUtils.d.ts" />
import { assertOkResult, } from '@dossierhq/core';
import { assertEquals, assertSame, assertTruthy } from '../Asserts.js';
export function assertChangelogEventsConnection(actualResult, expectedNodes) {
assertOkResult(actualResult);
if (expectedNodes.length === 0) {
assertSame(actualResult.value, null);
}
else {
assertTruthy(actualResult.value);
assertEquals(actualResult.value.edges.length, expectedNodes.length);
for (const [index, expectedNode] of expectedNodes.entries()) {
const actualNodeResult = actualResult.value.edges[index].node;
// Skip id since it's random
const { id, ...actualEvent } = actualNodeResult.valueOrThrow();
const createdBy = actualEvent.createdBy;
//TODO currently we can't predict the createdBy value, so we just set it to the expected value, probably need a way to get the current subject from DossierClient
const expectedEvent = expectedNode.createdBy === '' ? { ...expectedNode, createdBy } : expectedNode;
assertEquals(actualEvent, expectedEvent);
}
}
}
export function assertSyncEventsEqual(actualEvents, expectedEvents) {
assertEquals(actualEvents.length, expectedEvents.length);
for (let i = 0; i < actualEvents.length; i++) {
const { id, createdAt, ...actualEvent } = actualEvents[i];
assertEquals(actualEvent, expectedEvents[i]);
}
}
//# sourceMappingURL=EventsTestUtils.js.map