Skip to content

Commit dbc25dc

Browse files
committed
refactor: clean up baseSlice and tests, ensure correct usage and 100% coverage
1 parent ff44d08 commit dbc25dc

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

app/store/baseSlice.test.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { create } from 'zustand';
2+
import { immer } from 'zustand/middleware/immer';
3+
import { createBaseSlice, BaseSlice } from './baseSlice';
4+
5+
describe('baseSlice', () => {
6+
let store: ReturnType<typeof setupStore>;
7+
8+
type Store = BaseSlice;
9+
const setupStore = () =>
10+
create<Store>()(
11+
immer((set) => ({
12+
...createBaseSlice(set),
13+
}))
14+
);
15+
16+
beforeEach(() => {
17+
store = setupStore();
18+
});
19+
20+
it('should have initial state', () => {
21+
expect(store.getState().loading).toBe(false);
22+
expect(store.getState().error).toBeNull();
23+
});
24+
25+
it('setLoading updates loading', () => {
26+
store.getState().setLoading(true);
27+
expect(store.getState().loading).toBe(true);
28+
store.getState().setLoading(false);
29+
expect(store.getState().loading).toBe(false);
30+
});
31+
32+
it('setError updates error', () => {
33+
store.getState().setError('error message');
34+
expect(store.getState().error).toBe('error message');
35+
store.getState().setError(null);
36+
expect(store.getState().error).toBeNull();
37+
});
38+
});

0 commit comments

Comments
 (0)