/ src / store / governance.test.ts
governance.test.ts
 1  import { describe, it, expect, beforeEach } from 'vitest';
 2  import { useGovernanceStore } from './governance';
 3  
 4  describe('useGovernanceStore', () => {
 5    beforeEach(() => {
 6      // Reset store state before each test
 7      useGovernanceStore.setState({
 8        proposals: [],
 9        votes: [],
10        userVotingPower: BigInt(0),
11        isLoading: false,
12      });
13    });
14  
15    it('should have initial empty state', () => {
16      const state = useGovernanceStore.getState();
17      expect(state.proposals).toEqual([]);
18      expect(state.votes).toEqual([]);
19      expect(state.userVotingPower).toBe(BigInt(0));
20      expect(state.isLoading).toBe(false);
21    });
22  
23    it('should fetch proposals and update state', async () => {
24      const { fetchProposals } = useGovernanceStore.getState();
25      await fetchProposals();
26  
27      const state = useGovernanceStore.getState();
28      expect(state.proposals.length).toBeGreaterThan(0);
29      expect(state.proposals[0].id).toBe('PROP-001');
30      expect(state.isLoading).toBe(false);
31    });
32  
33    it('should fetch voting power', async () => {
34      const { fetchVotingPower } = useGovernanceStore.getState();
35      await fetchVotingPower('dx1test...');
36  
37      const state = useGovernanceStore.getState();
38      expect(state.userVotingPower).toBe(BigInt(100000));
39    });
40  });