@@ -22,6 +22,7 @@ import {
2222 clearAllHooks ,
2323 StateUtility ,
2424 padHexString ,
25+ createHookPayload ,
2526} from '../../../src'
2627import {
2728 HookDefinition as LeHookDefinition ,
@@ -121,29 +122,29 @@ describe('SetHook - End to End', () => {
121122
122123describe ( 'SetHook - Fields' , ( ) => {
123124 let testContext : XrplIntegrationTestContext
124- let Hook : iHook
125125
126126 beforeAll ( async ( ) => {
127127 testContext = await setupClient ( serverUrl )
128128 } )
129- beforeEach ( async ( ) => {
130- Hook = {
131- CreateCode : readHookBinaryHexFromNS ( 'base' , 'wasm' ) ,
132- Flags : HookFlags . hsfOverride ,
133- HookOn : calculateHookOn ( [ 'Invoke' ] ) ,
134- HookNamespace : hexNamespace ( 'base' ) ,
135- HookApiVersion : 0 ,
136- } as iHook
129+ afterEach ( async ( ) => {
130+ await clearAllHooks ( {
131+ client : testContext . client ,
132+ wallet : testContext . hook1 ,
133+ } as SetHookParams )
137134 } )
138135 afterAll ( async ( ) => teardownClient ( testContext ) )
139136
140137 it ( 'sethook - HookName' , async ( ) => {
141138 const hookWallet = testContext . hook1
142139 // SETHOOK IN
143- const hook = {
144- ...Hook ,
145- HookName : convertStringToHex ( 'test' ) ,
146- } as iHook
140+ const hook = createHookPayload ( {
141+ version : 0 ,
142+ createFile : 'base' ,
143+ namespace : 'base' ,
144+ flags : HookFlags . hsfOverride ,
145+ hookOnArray : [ 'Invoke' ] ,
146+ hookName : 'test' ,
147+ } )
147148 await setHooks ( {
148149 client : testContext . client ,
149150 wallet : hookWallet ,
@@ -200,20 +201,53 @@ describe('SetHook - Fields', () => {
200201 ( response . meta as TransactionMetadata ) . HookExecutions
201202 ) . toBeDefined ( )
202203 }
204+ } )
203205
204- const clearHook = {
205- Flags : HookFlags . hsfNSDelete ,
206- HookNamespace : hexNamespace ( 'base' ) ,
207- } as iHook
206+ it ( 'sethook - HookOnIncoming/Outgoing' , async ( ) => {
207+ const hookWallet = testContext . hook1
208+ // SETHOOK IN
209+ const hook = createHookPayload ( {
210+ version : 0 ,
211+ createFile : 'base' ,
212+ namespace : 'base' ,
213+ flags : HookFlags . hsfOverride ,
214+ hookOnIncomingArray : [ 'Invoke' ] ,
215+ hookOnOutgoingArray : [ 'Payment' ] ,
216+ } )
208217 await setHooks ( {
209218 client : testContext . client ,
210219 wallet : hookWallet ,
211- hooks : [ { Hook : clearHook } ] ,
212- } as SetHookParams )
213- await clearAllHooks ( {
214- client : testContext . client ,
215- wallet : testContext . hook1 ,
220+ hooks : [ { Hook : hook } ] ,
216221 } as SetHookParams )
222+
223+ createHookPayload ( {
224+ version : 0 ,
225+ createFile : 'base' ,
226+ namespace : 'base' ,
227+ flags : HookFlags . hsfOverride ,
228+ hookOnIncomingArray : [ 'Invoke' ] ,
229+ hookOnOutgoingArray : [ 'Payment' ] ,
230+ } )
231+
232+ // VALIDATION
233+ const hookReq : LedgerEntryRequest = {
234+ command : 'ledger_entry' ,
235+ hook : {
236+ account : hookWallet . classicAddress ,
237+ } ,
238+ }
239+ const hookRes = await testContext . client . request ( hookReq )
240+ const leHook = hookRes . result . node as LeHook
241+ expect ( leHook . Hooks . length ) . toBe ( 1 )
242+ const hookObj = leHook . Hooks [ 0 ] . Hook
243+ const hookDefRequest : LedgerEntryRequest = {
244+ command : 'ledger_entry' ,
245+ hook_definition : hookObj . HookHash ,
246+ }
247+ const hookDefRes = await testContext . client . request ( hookDefRequest )
248+ const hookDefObj = hookDefRes . result . node as LeHookDefinition
249+ expect ( hookDefObj . HookOnIncoming ) . toBe ( calculateHookOn ( [ 'Invoke' ] ) )
250+ expect ( hookDefObj . HookOnOutgoing ) . toBe ( calculateHookOn ( [ 'Payment' ] ) )
217251 } )
218252} )
219253
0 commit comments