@@ -123,12 +123,35 @@ describe("DelegationFeeCutSet", () => {
123123
124124 assert . entityCount ( "ProvisionFeeCut" , 1 )
125125 assert . fieldEquals ( "ProvisionFeeCut" , entityId , "provision" , provisionId )
126+ assert . fieldEquals ( "ProvisionFeeCut" , entityId , "serviceProvider" , SP_ADDRESS . toHexString ( ) )
127+ assert . fieldEquals ( "ProvisionFeeCut" , entityId , "dataService" , VERIFIER_ADDRESS . toHexString ( ) )
126128 assert . fieldEquals ( "ProvisionFeeCut" , entityId , "paymentType" , PAYMENT_TYPE_QUERY_FEE . toString ( ) )
127129 assert . fieldEquals ( "ProvisionFeeCut" , entityId , "feeCut" , feeCut . toString ( ) )
128130 assert . fieldEquals ( "ProvisionFeeCut" , entityId , "updatedAtBlock" , "300" )
129131 assert . fieldEquals ( "ProvisionFeeCut" , entityId , "updatedAt" , "3000" )
130132 } )
131133
134+ test ( "creates ProvisionFeeCut without existing provision" , ( ) => {
135+ // Set fee cut WITHOUT creating provision first
136+ let feeCut = BigInt . fromI32 ( 100000 ) // 10% in PPM
137+ let event = createDelegationFeeCutSetEvent (
138+ SP_ADDRESS ,
139+ VERIFIER_ADDRESS ,
140+ PAYMENT_TYPE_QUERY_FEE ,
141+ feeCut
142+ )
143+ handleDelegationFeeCutSet ( event )
144+
145+ let entityId = getFeeCutIdString ( SP_ADDRESS , VERIFIER_ADDRESS , PAYMENT_TYPE_QUERY_FEE )
146+
147+ // Entity should exist with serviceProvider and dataService set
148+ assert . entityCount ( "ProvisionFeeCut" , 1 )
149+ assert . fieldEquals ( "ProvisionFeeCut" , entityId , "serviceProvider" , SP_ADDRESS . toHexString ( ) )
150+ assert . fieldEquals ( "ProvisionFeeCut" , entityId , "dataService" , VERIFIER_ADDRESS . toHexString ( ) )
151+ assert . fieldEquals ( "ProvisionFeeCut" , entityId , "paymentType" , PAYMENT_TYPE_QUERY_FEE . toString ( ) )
152+ assert . fieldEquals ( "ProvisionFeeCut" , entityId , "feeCut" , feeCut . toString ( ) )
153+ } )
154+
132155 test ( "creates separate entities for different payment types" , ( ) => {
133156 setupServiceProviderAndProvision ( )
134157
0 commit comments