@dossierhq/integration-test
Version:
Integration test to ensure that different Dossier database adapters work as expected.
32 lines • 1.33 kB
JavaScript
/// <reference types="./SampleTestUtils.d.ts" />
import { EntityStatus, } from '@dossierhq/core';
import { assertEquals, assertOkResult } from '../Asserts.js';
export function countEntityStatuses(entities) {
const result = {
[EntityStatus.draft]: 0,
[EntityStatus.published]: 0,
[EntityStatus.modified]: 0,
[EntityStatus.withdrawn]: 0,
[EntityStatus.archived]: 0,
};
for (const entity of entities) {
result[entity.info.status] += 1;
}
return result;
}
export function assertSampledEntities(actualResult, expectedSeed, expectedEntities) {
assertOkResult(actualResult);
const { seed, totalCount, items } = actualResult.value;
assertEquals(seed, expectedSeed);
assertEquals(totalCount, expectedEntities.length);
const actualIds = items.map((it) => it.id).sort();
const expectedIds = expectedEntities.map((it) => it.id).sort();
assertEquals(actualIds, expectedIds);
}
export function assertSampledEntitiesArePartOfExpected(actualResult, expectedEntities) {
assertOkResult(actualResult);
const expectedIds = expectedEntities.map((it) => it.id);
const missingEntities = actualResult.value.items.filter((it) => !expectedIds.includes(it.id));
assertEquals(missingEntities, []);
}
//# sourceMappingURL=SampleTestUtils.js.map