test(dict-vsp): фильтрация ВСП по ССП вынесена в чистую функцию
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
2a287480b6
commit
3ab229f6f8
6
web/src/pages/DictVspPage/utils/filterVspBySsp.js
Normal file
6
web/src/pages/DictVspPage/utils/filterVspBySsp.js
Normal file
@ -0,0 +1,6 @@
|
||||
export const filterVspBySsp = (data, selectedSsp) => {
|
||||
if (!selectedSsp) {
|
||||
return data;
|
||||
}
|
||||
return data.filter((item) => item.ssp_id === selectedSsp.id);
|
||||
};
|
||||
25
web/src/pages/DictVspPage/utils/filterVspBySsp.test.js
Normal file
25
web/src/pages/DictVspPage/utils/filterVspBySsp.test.js
Normal 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 }), []);
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user