42 lines
1.6 KiB
TypeScript
42 lines
1.6 KiB
TypeScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
|
|
import {
|
|
filterRequirementProjectOptions,
|
|
filterRequirementVersionOptions,
|
|
} from './requirement';
|
|
|
|
const projects = [
|
|
{ id: 'project-1', name: 'Mobile App', productId: 'product-1' },
|
|
{ id: 'project-2', name: 'Admin Portal', productId: 'product-1' },
|
|
{ id: 'project-3', name: 'Data Console', productId: 'product-2' },
|
|
];
|
|
|
|
const versions = [
|
|
{ id: 'version-1', name: 'V1.0 Checkout', projectId: 'project-1' },
|
|
{ id: 'version-2', name: 'V1.1 Profile', projectId: 'project-1' },
|
|
{ id: 'version-3', name: 'V2.0 Admin', projectId: 'project-2' },
|
|
];
|
|
|
|
test('filters requirement project options by selected product and keyword', () => {
|
|
assert.deepEqual(filterRequirementProjectOptions(projects, '', '').map((project) => project.id), []);
|
|
assert.deepEqual(filterRequirementProjectOptions(projects, 'product-1', '').map((project) => project.id), [
|
|
'project-1',
|
|
'project-2',
|
|
]);
|
|
assert.deepEqual(filterRequirementProjectOptions(projects, 'product-1', 'portal').map((project) => project.id), [
|
|
'project-2',
|
|
]);
|
|
});
|
|
|
|
test('filters requirement version options by selected project and keyword', () => {
|
|
assert.deepEqual(filterRequirementVersionOptions(versions, '', '').map((version) => version.id), []);
|
|
assert.deepEqual(filterRequirementVersionOptions(versions, 'project-1', 'v1').map((version) => version.id), [
|
|
'version-1',
|
|
'version-2',
|
|
]);
|
|
assert.deepEqual(filterRequirementVersionOptions(versions, 'project-2', 'admin').map((version) => version.id), [
|
|
'version-3',
|
|
]);
|
|
});
|