import { buildConnector , VOTING_APP_ADDRESS } from '../utils' ; import { DisputableVotingConnectorTheGraph , Vote , CastVote } from '../../../src' ; describe ( 'DisputableVoting votes' , ( ) => { let connector ; beforeAll ( async ( ) => { connector = await buildConnector ( ) ; } ) ; afterAll ( async ( ) => { await connector . disconnect ( ) ; } ) ; describe ( 'vote' , ( ) => { test ( 'returns the requested vote information' , async ( ) => { const vote = await connector . vote ( `${ VOTING_APP_ADDRESS }-vote-3` ) ; expect ( vote . id ) . toBe ( `${ VOTING_APP_ADDRESS }-vote-3` ) ; expect ( vote . voteId ) . toEqual ( '3' ) ; expect ( vote . votingId ) . toBe ( VOTING_APP_ADDRESS ) ; expect ( vote . settingId ) . toBe ( `${ VOTING_APP_ADDRESS }-setting-0` ) ; expect ( vote . actionId ) . toBe ( '4' ) ; expect ( vote . context ) . toBe ( 'Context for action 4' ) ; expect ( vote . voteStatus ) . toBe ( 'Disputed' ) ; expect ( vote . creator ) . toBe ( '0x0090aed150056316e37fe6dfa10dc63e79d173b6' ) ; expect ( vote . originalCreator ) . toBeDefined ( ) ; expect ( vote . startDate ) . toBe ( '1598480213' ) ; expect ( vote . totalPower ) . toBe ( '3000000000000000000' ) ; expect ( vote . snapshotBlock ) . toBe ( '7088291' ) ; expect ( vote . yeas ) . toBe ( '0' ) ; expect ( vote . nays ) . toBe ( '0' ) ; expect ( vote . pausedAt ) . toBe ( '1598480258' ) ; expect ( vote . pauseDuration ) . toBe ( '0' ) ; expect ( vote . quietEndingExtensionDuration ) . toBe ( '0' ) ; expect ( vote . quietEndingSnapshotSupport ) . toBe ( 'Absent' ) ; expect ( vote . script ) . toBe ( '0x00000001' ) ; } ) ; it ( 'allows fetching the cast votes' , async ( ) => { const vote = await connector . vote ( `${ VOTING_APP_ADDRESS }-vote-0` ) ; const castVotes = await vote . castVotes ( ) ; expect ( castVotes . length ) . toBeGreaterThan ( 0 ) ; const firstCastVote = castVotes [ 0 ] ; expect ( firstCastVote . id ) . toBe ( `${ VOTING_APP_ADDRESS }-vote-0-cast-0x0090aed150056316e37fe6dfa10dc63e79d173b6` ) ; expect ( firstCastVote . caster ) . toBe ( '0x0090aed150056316e37fe6dfa10dc63e79d173b6' ) ; expect ( firstCastVote . createdAt ) . toEqual ( '1598530298' ) ; expect ( firstCastVote . stake ) . toBe ( '1000000000000000000' ) ; expect ( firstCastVote . supports ) . toBe ( true ) ; } ) ; } ) ; describe ( 'votes' , ( ) => { let votes ; beforeAll ( async ( ) => { votes = await connector . votes ( VOTING_APP_ADDRESS , 1000 , 0 ) ; } ) ; test ( 'returns a list of votes' , ( ) => { expect ( votes . length ) . toBeGreaterThan ( 3 ) ; } ) ; test ( 'allows fetching a single vote' , ( ) => { const vote = votes . find ( ( vote ) => vote . id === `${ VOTING_APP_ADDRESS }-vote-2` ) as Vote ; expect ( vote . voteId ) . toEqual ( '2' ) ; expect ( vote . votingId ) . toBe ( VOTING_APP_ADDRESS ) ; expect ( vote . settingId ) . toBe ( `${ VOTING_APP_ADDRESS }-setting-0` ) ; expect ( vote . actionId ) . toBe ( '3' ) ; expect ( vote . voteStatus ) . toBe ( 'Settled' ) ; expect ( vote . context ) . toBe ( 'Context for action 3' ) ; expect ( vote . creator ) . toBe ( '0x0090aed150056316e37fe6dfa10dc63e79d173b6' ) ; expect ( vote . originalCreator ) . toBeDefined ( ) ; expect ( vote . startDate ) . toBe ( '1598480123' ) ; expect ( vote . totalPower ) . toBe ( '3000000000000000000' ) ; expect ( vote . snapshotBlock ) . toBe ( '7088285' ) ; expect ( vote . yeas ) . toBe ( '0' ) ; expect ( vote . nays ) . toBe ( '0' ) ; expect ( vote . pausedAt ) . toBe ( '1598480183' ) ; expect ( vote . pauseDuration ) . toBe ( '15' ) ; expect ( vote . quietEndingExtensionDuration ) . toBe ( '0' ) ; expect ( vote . quietEndingSnapshotSupport ) . toBe ( 'Absent' ) ; expect ( vote . script ) . toBe ( '0x00000001' ) ; } ) ; } ) ; } ) ;