Skip to content

Commit a12ea64

Browse files
committed
main 🧊 update deps, add test use debounce value
1 parent 8427c04 commit a12ea64

File tree

5 files changed

+362
-229
lines changed

5 files changed

+362
-229
lines changed

‎packages/cli/package.json‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,21 @@
4040
},
4141
"dependencies": {
4242
"@antfu/ni": "^25.0.0",
43-
"@siberiacancode/fetches": "1.9.6",
43+
"@siberiacancode/fetches": "1.10.0",
4444
"chalk": "5.4.1",
4545
"cosmiconfig": "^9.0.0",
4646
"execa": "9.6.0",
4747
"ora": "8.2.0",
4848
"prompts": "^2.4.2",
4949
"tsconfig-paths": "^4.2.0",
5050
"yargs": "^18.0.0",
51-
"zod": "^3.25.49"
51+
"zod": "^3.25.67"
5252
},
5353
"devDependencies": {
5454
"@types/prompts": "^2.4.9",
5555
"@types/yargs": "^17.0.33",
5656
"cross-env": "^7.0.3",
57-
"tsup": "^8.5.0",
58-
"tsx": "^4.19.4"
57+
"tsup": "^8.5.0"
5958
},
6059
"lint-staged": {
6160
"*.{js,ts}": [

‎packages/core/package.json‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,17 @@
6868
"@testing-library/dom": "^10.4.0",
6969
"@testing-library/react": "^16.3.0",
7070
"@types/dom-speech-recognition": "^0.0.6",
71-
"@types/react": "^19.1.7",
71+
"@types/react": "^19.1.8",
7272
"@types/react-dom": "^19.1.6",
7373
"@types/web-bluetooth": "^0.0.21",
74-
"@vitejs/plugin-react": "^4.5.2",
74+
"@vitejs/plugin-react": "^4.6.0",
7575
"core-js": "^3.43.0",
7676
"react": "^19.1.0",
7777
"react-dom": "^19.1.0",
7878
"shx": "^0.4.0",
79-
"vite": "^6.3.5",
79+
"vite": "^7.0.0",
8080
"vite-plugin-dts": "^4.5.4",
81-
"vitest": "^3.2.3"
81+
"vitest": "^3.2.4"
8282
},
8383
"lint-staged": {
8484
"*.{js,ts,tsx}": [

‎packages/core/src/hooks/useDebounceValue/useDebounceValue.test.ts‎

Lines changed: 15 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -3,110 +3,44 @@ import { vi } from 'vitest';
33

44
import { useDebounceValue } from './useDebounceValue';
55

6-
beforeEach(() => vi.useFakeTimers());
6+
beforeEach(vi.useFakeTimers);
77

88
afterEach(() => {
99
vi.useRealTimers();
1010
vi.restoreAllMocks();
1111
});
1212

13-
it('Should return initial value immediately', () => {
14-
const { result } = renderHook(() => useDebounceValue('initial value', 100));
15-
16-
expect(result.current).toBe('initial value');
13+
it('Should use debounce value', () => {
14+
const { result } = renderHook(() => useDebounceValue('value', 100));
15+
expect(result.current).toBe('value');
1716
});
1817

19-
it('Should update value only after delay', () => {
18+
it('Should update value after delay', () => {
2019
const { result, rerender } = renderHook(({ value, delay }) => useDebounceValue(value, delay), {
21-
initialProps: { value: 1, delay: 100 }
20+
initialProps: { value: 'value', delay: 100 }
2221
});
2322

24-
rerender({ value: 2, delay: 100 });
23+
rerender({ value: 'new value', delay: 100 });
2524

2625
act(() => vi.advanceTimersByTime(99));
27-
expect(result.current).toBe(1);
26+
expect(result.current).toBe('value');
2827

2928
act(() => vi.advanceTimersByTime(1));
30-
expect(result.current).toBe(2);
31-
});
32-
33-
it('Should debounce rapid consecutive updates and use only the last value', () => {
34-
const { result, rerender } = renderHook(({ value, delay }) => useDebounceValue(value, delay), {
35-
initialProps: { value: 1, delay: 100 }
36-
});
37-
expect(result.current).toBe(1);
38-
39-
rerender({ value: 2, delay: 100 });
40-
41-
act(() => vi.advanceTimersByTime(50));
42-
expect(result.current).toBe(1);
43-
44-
rerender({ value: 3, delay: 100 });
45-
46-
act(() => vi.advanceTimersByTime(100));
47-
expect(result.current).toBe(3);
48-
});
49-
50-
it('Should not trigger state update if the value remains the same', () => {
51-
const { result, rerender } = renderHook(({ value, delay }) => useDebounceValue(value, delay), {
52-
initialProps: { value: 'same', delay: 100 }
53-
});
54-
expect(result.current).toBe('same');
55-
56-
rerender({ value: 'same', delay: 100 });
57-
58-
act(() => vi.advanceTimersByTime(100));
59-
expect(result.current).toBe('same');
60-
});
61-
62-
it('Should apply multiple updates separately when spaced by delay', () => {
63-
const { result, rerender } = renderHook(({ value, delay }) => useDebounceValue(value, delay), {
64-
initialProps: { value: 1, delay: 100 }
65-
});
66-
expect(result.current).toBe(1);
67-
68-
rerender({ value: 2, delay: 100 });
69-
70-
act(() => vi.advanceTimersByTime(100));
71-
expect(result.current).toBe(2);
72-
73-
rerender({ value: 3, delay: 100 });
74-
75-
act(() => vi.advanceTimersByTime(100));
76-
expect(result.current).toBe(3);
29+
expect(result.current).toBe('new value');
7730
});
7831

79-
it('Should use new delay when delay changes', () => {
32+
it('Should apply new delay when delay changes', () => {
8033
const { result, rerender } = renderHook(({ value, d }) => useDebounceValue(value, d), {
81-
initialProps: { value: 'initial', d: 100 }
34+
initialProps: { value: 'value', d: 100 }
8235
});
83-
expect(result.current).toBe('initial');
8436

85-
rerender({ value: 'first', d: 100 });
37+
rerender({ value: 'new value', d: 200 });
8638

87-
act(() => vi.advanceTimersByTime(100));
88-
expect(result.current).toBe('first');
89-
90-
rerender({ value: 'second', d: 200 });
39+
expect(result.current).toBe('value');
9140

9241
act(() => vi.advanceTimersByTime(199));
93-
expect(result.current).toBe('first');
42+
expect(result.current).toBe('value');
9443

9544
act(() => vi.advanceTimersByTime(1));
96-
expect(result.current).toBe('second');
97-
});
98-
99-
it('Should not update value after unmount', () => {
100-
const { result, rerender, unmount } = renderHook(
101-
({ value, delay }) => useDebounceValue(value, delay),
102-
{
103-
initialProps: { value: 'start', delay: 100 }
104-
}
105-
);
106-
107-
rerender({ value: 'end', delay: 100 });
108-
unmount();
109-
110-
act(() => vi.advanceTimersByTime(100));
111-
expect(result.current).toBe('start');
45+
expect(result.current).toBe('new value');
11246
});

‎packages/docs/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"@types/react-dom": "^19.1.6",
4343
"clsx": "^2.1.1",
4444
"comment-parser": "^1.4.1",
45-
"lucide-vue-next": "^0.518.0",
45+
"lucide-vue-next": "^0.523.0",
4646
"md5": "^2.3.0",
4747
"react": "^19.1.0",
4848
"react-dom": "^19.1.0",

0 commit comments

Comments
 (0)