From 3ab229f6f8e913ba26ee28de39044ce911e86300 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Wed, 28 Oct 2026 18:09:52 +0400 Subject: [PATCH] =?UTF-8?q?test(dict-vsp):=20=D1=84=D0=B8=D0=BB=D1=8C?= =?UTF-8?q?=D1=82=D1=80=D0=B0=D1=86=D0=B8=D1=8F=20=D0=92=D0=A1=D0=9F=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D0=A1=D0=A1=D0=9F=20=D0=B2=D1=8B=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D0=B5=D0=BD=D0=B0=20=D0=B2=20=D1=87=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D1=83=D1=8E=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../pages/DictVspPage/utils/filterVspBySsp.js | 6 +++++ .../DictVspPage/utils/filterVspBySsp.test.js | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 web/src/pages/DictVspPage/utils/filterVspBySsp.js create mode 100644 web/src/pages/DictVspPage/utils/filterVspBySsp.test.js diff --git a/web/src/pages/DictVspPage/utils/filterVspBySsp.js b/web/src/pages/DictVspPage/utils/filterVspBySsp.js new file mode 100644 index 0000000..8a8eb12 --- /dev/null +++ b/web/src/pages/DictVspPage/utils/filterVspBySsp.js @@ -0,0 +1,6 @@ +export const filterVspBySsp = (data, selectedSsp) => { + if (!selectedSsp) { + return data; + } + return data.filter((item) => item.ssp_id === selectedSsp.id); +}; diff --git a/web/src/pages/DictVspPage/utils/filterVspBySsp.test.js b/web/src/pages/DictVspPage/utils/filterVspBySsp.test.js new file mode 100644 index 0000000..59417f5 --- /dev/null +++ b/web/src/pages/DictVspPage/utils/filterVspBySsp.test.js @@ -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 }), []); +});