1
1
import { project , accounts } from '../clarigen-types' ; // where your [types.output] was specified
2
- import { CoreNodeEventType , projectFactory } from '@clarigen/core' ;
2
+ import { CoreNodeEventType , cvToValue , projectFactory } from '@clarigen/core' ;
3
3
import { filterEvents , rov , txErr , txOk } from '@clarigen/test' ;
4
4
import { test , expect } from 'vitest' ;
5
5
@@ -85,8 +85,10 @@ test('updated recipient can claim', () => {
85
85
const receipt = txOk ( contract . claim ( ) , accounts . wallet_1 . address ) ;
86
86
expect ( receipt . value ) . toBe ( constants . INITIAL_MINT_IMMEDIATE_AMOUNT ) ;
87
87
88
- expect ( receipt . events . length ) . toBe ( 1 ) ;
89
- const [ event ] = filterEvents ( receipt . events , CoreNodeEventType . StxTransferEvent ) ;
88
+ expect ( receipt . events . length ) . toBe ( 2 ) ;
89
+ const stxTransferEvents = filterEvents ( receipt . events , CoreNodeEventType . StxTransferEvent ) ;
90
+ expect ( stxTransferEvents . length ) . toBe ( 1 ) ;
91
+ const [ event ] = stxTransferEvents ;
90
92
expect ( event . data . amount ) . toBe ( `${ constants . INITIAL_MINT_IMMEDIATE_AMOUNT } ` ) ;
91
93
expect ( event . data . recipient ) . toBe ( accounts . wallet_1 . address ) ;
92
94
expect ( event . data . sender ) . toBe ( contract . identifier ) ;
@@ -287,4 +289,32 @@ test('calculating claimable amount at invalid block height returns 0', () => {
287
289
mintInitial ( ) ;
288
290
const deployBlockHeight = rov ( contract . getDeployBlockHeight ( ) ) ;
289
291
expect ( rov ( contract . calcClaimableAmount ( deployBlockHeight - 1n ) ) ) . toBe ( 0n ) ;
290
- } ) ;
292
+ } ) ;
293
+
294
+ test ( 'print events are emitted when updating recipient' , ( ) => {
295
+ const receipt = txOk ( contract . updateRecipient ( accounts . wallet_1 . address ) , accounts . deployer . address ) ;
296
+ expect ( receipt . events . length ) . toBe ( 1 ) ;
297
+ const [ event ] = filterEvents ( receipt . events , CoreNodeEventType . ContractEvent ) ;
298
+ const printData = cvToValue < {
299
+ topic : string ;
300
+ oldRecipient : string ;
301
+ newRecipient : string ;
302
+ } > ( event . data . value ) ;
303
+ expect ( printData . topic ) . toBe ( 'update-recipient' ) ;
304
+ expect ( printData . oldRecipient ) . toBe ( accounts . deployer . address ) ;
305
+ expect ( printData . newRecipient ) . toBe ( accounts . wallet_1 . address ) ;
306
+ } ) ;
307
+
308
+ test ( 'print events are emitted when claiming' , ( ) => {
309
+ mintInitial ( ) ;
310
+ const receipt = txOk ( contract . claim ( ) , accounts . deployer . address ) ;
311
+ const [ event ] = filterEvents ( receipt . events , CoreNodeEventType . ContractEvent ) ;
312
+ const printData = cvToValue < {
313
+ topic : string ;
314
+ claimable : string ;
315
+ recipient : string ;
316
+ } > ( event . data . value ) ;
317
+ expect ( printData . topic ) . toBe ( 'claim' ) ;
318
+ expect ( printData . claimable ) . toBe ( constants . INITIAL_MINT_IMMEDIATE_AMOUNT ) ;
319
+ expect ( printData . recipient ) . toBe ( accounts . deployer . address ) ;
320
+ } ) ;
0 commit comments