diff --git a/packages/shared/useCounter/index.test.ts b/packages/shared/useCounter/index.test.ts index 6ca9a7d0c66..d076ab0ce0e 100644 --- a/packages/shared/useCounter/index.test.ts +++ b/packages/shared/useCounter/index.test.ts @@ -37,7 +37,7 @@ describe('useCounter', () => { }) it('should be update limited counter', () => { - const { count, inc, dec, get } = useCounter(1, { min: -2, max: 15 }) + const { count, inc, dec, get, set, reset } = useCounter(1, { min: -2, max: 15 }) expect(count.value).toBe(1) expect(get()).toBe(1) @@ -53,5 +53,23 @@ describe('useCounter', () => { dec(20) expect(count.value).toBe(-2) expect(get()).toBe(-2) + reset() + expect(count.value).toBe(1) + expect(get()).toBe(1) + set(20) + expect(count.value).toBe(15) + expect(get()).toBe(15) + set(-10) + expect(count.value).toBe(-2) + expect(get()).toBe(-2) + reset() + expect(count.value).toBe(1) + expect(get()).toBe(1) + reset(20) + expect(count.value).toBe(15) + expect(get()).toBe(15) + reset(-10) + expect(count.value).toBe(-2) + expect(get()).toBe(-2) }) }) diff --git a/packages/shared/useCounter/index.ts b/packages/shared/useCounter/index.ts index 746d57f6097..d09b19b7500 100644 --- a/packages/shared/useCounter/index.ts +++ b/packages/shared/useCounter/index.ts @@ -23,7 +23,7 @@ export function useCounter(initialValue = 0, options: UseCounterOptions = {}) { const inc = (delta = 1) => count.value = Math.min(max, count.value + delta) const dec = (delta = 1) => count.value = Math.max(min, count.value - delta) const get = () => count.value - const set = (val: number) => (count.value = val) + const set = (val: number) => (count.value = Math.max(min, Math.min(max, val))) const reset = (val = initialValue) => { initialValue = val return set(val)