28 lines
1.1 KiB
JavaScript
28 lines
1.1 KiB
JavaScript
import { test } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { currentLabAcceptanceCases as cases } from './fixtures/d10-current-lab.mjs';
|
|
|
|
test('D10 current laboratory acceptance fixture is complete and explicit', () => {
|
|
assert.equal(cases.length, 5);
|
|
assert.equal(new Set(cases.map(({ ikn }) => ikn)).size, 5);
|
|
assert.equal(new Set(cases.map(({ id }) => id)).size, 5);
|
|
|
|
for (const item of cases) {
|
|
assert.match(item.ikn, /^2026\/\d{7}$/);
|
|
assert.match(item.id, /^ilan-\d+$/);
|
|
assert.match(item.date, /^\d{2}\.\d{2}\.2026$/);
|
|
assert.match(item.time, /^\d{2}:\d{2}$/);
|
|
assert.ok(item.titleTerm);
|
|
assert.ok(item.natureTerm);
|
|
assert.ok(item.deliveryTerm);
|
|
assert.ok([60, 120].includes(item.validityDays));
|
|
assert.ok(item.partialOfferTerm);
|
|
assert.ok(item.requirements.length >= 5);
|
|
assert.equal(new Set(item.requirements.map(({ key }) => key)).size, item.requirements.length);
|
|
for (const requirement of item.requirements) {
|
|
assert.ok(requirement.label);
|
|
assert.ok(requirement.term);
|
|
}
|
|
}
|
|
});
|