@@ -124,7 +124,7 @@ describe.skipIf(!process.env.RUNNING_IN_CI)(
124124 } ) ;
125125 const conditionExpr = new ConditionExpression ( overallCondition ) ;
126126 await validateConditionExpression ( conditionExpr ) ;
127- } , 15000 ) ;
127+ } , 20000 ) ;
128128 test ( 'validate ecdsa condition lingo and supported curves consistency' , async ( ) => {
129129 // Split SUPPORTED_ECDSA_CURVES into chunks of 5 to respect the operand limit
130130 const preGeneratedVerifyingKeys = {
@@ -173,5 +173,44 @@ describe.skipIf(!process.env.RUNNING_IN_CI)(
173173 const conditionExpr = new ConditionExpression ( contextVariableCondition ) ;
174174 await validateConditionExpression ( conditionExpr ) ;
175175 } , 15000 ) ;
176+
177+ test ( 'validate conditions with operations' , async ( ) => {
178+ const sequentialCondition = new SequentialCondition ( {
179+ conditionVariables : [
180+ {
181+ varName : 'rpcValue' ,
182+ condition : testRpcConditionObj ,
183+ operations : [
184+ { operation : 'abs' } ,
185+ { operation : '^=' , value : BigInt ( '1000000000000000' ) } ,
186+ ] ,
187+ } ,
188+ {
189+ // add some operations
190+ varName : 'timeValue' ,
191+ condition : {
192+ ...testTimeConditionObj ,
193+ returnValueTest : {
194+ comparator : '>' ,
195+ value : 100 ,
196+ operations : [
197+ { operation : 'abs' } ,
198+ { operation : 'index' , value : 0 } ,
199+ { operation : '+=' , value : 5 } ,
200+ { operation : '*=' , value : ':multiplier' } , // context variable
201+ ] ,
202+ } ,
203+ } ,
204+ } ,
205+ {
206+ varName : 'contractValue' ,
207+ condition : testContractConditionObj ,
208+ operations : [ { operation : '-=' , value : 5.5 } ] ,
209+ } ,
210+ ] ,
211+ } ) ;
212+ const conditionExpr = new ConditionExpression ( sequentialCondition ) ;
213+ await validateConditionExpression ( conditionExpr ) ;
214+ } , 15000 ) ;
176215 } ,
177216) ;
0 commit comments