test(dict-vsp): фильтрация ВСП по ССП вынесена в чистую функцию

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-28 18:09:52 +04:00
parent 2a287480b6
commit 3ab229f6f8
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,6 @@
export const filterVspBySsp = (data, selectedSsp) => {
if (!selectedSsp) {
return data;
}
return data.filter((item) => item.ssp_id === selectedSsp.id);
};

View File

@ -0,0 +1,25 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import { filterVspBySsp } from './filterVspBySsp.js';
const data = [
{ id: 1, ssp_id: 10 },
{ id: 2, ssp_id: 20 },
{ id: 3, ssp_id: 10 },
];
test('без выбранного ССП возвращает те же данные (ссылка не меняется)', () => {
assert.equal(filterVspBySsp(data, null), data);
assert.equal(filterVspBySsp(data, undefined), data);
});
test('с выбранным ССП оставляет только его ВСП, порядок сохраняется', () => {
assert.deepEqual(
filterVspBySsp(data, { id: 10 }).map((v) => v.id),
[1, 3],
);
});
test('ССП без ВСП даёт пустой список', () => {
assert.deepEqual(filterVspBySsp(data, { id: 99 }), []);
});