From 4640d6e521b0be69f29634a6e859c5e14b03d72b Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Sun, 31 May 2026 16:50:55 +0300 Subject: [PATCH] test(shared): test ComboControl against NumericControl mock, not the factory --- .../ComboControl/ComboControl.stories.svelte | 6 +-- .../ComboControl/ComboControl.svelte.test.ts | 4 +- .../createNumericControlMock.svelte.ts | 47 +++++++++++++++++++ 3 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 src/shared/ui/ComboControl/testing/createNumericControlMock.svelte.ts diff --git a/src/shared/ui/ComboControl/ComboControl.stories.svelte b/src/shared/ui/ComboControl/ComboControl.stories.svelte index bdaf27f..09ef682 100644 --- a/src/shared/ui/ComboControl/ComboControl.stories.svelte +++ b/src/shared/ui/ComboControl/ComboControl.stories.svelte @@ -1,7 +1,7 @@ , +): NumericControl { + let value = $state(init.value); + const clamp = (v: number) => Math.min(Math.max(v, init.min), init.max); + + return { + get value() { + return value; + }, + set value(v) { + value = clamp(v); + }, + get min() { + return init.min; + }, + get max() { + return init.max; + }, + get step() { + return init.step; + }, + get isAtMin() { + return value <= init.min; + }, + get isAtMax() { + return value >= init.max; + }, + increase() { + value = clamp(value + init.step); + }, + decrease() { + value = clamp(value - init.step); + }, + }; +}