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 });