Skip to content

Commit 6600467

Browse files
committed
fix: add time drift margins to tests
1 parent 3a845e8 commit 6600467

1 file changed

Lines changed: 15 additions & 12 deletions

File tree

cadence/tests/paid_auto_balance_test.cdc

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,23 +63,23 @@ access(all) fun beforeEach() {
6363
}
6464

6565
access(all) fun test_on_time() {
66-
// should execute every 100 seconds
67-
Test.moveTime(by: 90.0)
66+
// should execute every 100 seconds; use 20s margin to absorb chain time drift
67+
Test.moveTime(by: 80.0)
6868
Test.commitBlock()
6969
var evts = Test.eventsOfType(Type<FlowALPRebalancerPaidv1.Rebalanced>())
7070
Test.assertEqual(0, evts.length)
7171

72-
Test.moveTime(by: 10.0)
72+
Test.moveTime(by: 20.0)
7373
Test.commitBlock()
7474
evts = Test.eventsOfType(Type<FlowALPRebalancerPaidv1.Rebalanced>())
7575
Test.assertEqual(1, evts.length)
7676

77-
Test.moveTime(by: 90.0)
77+
Test.moveTime(by: 80.0)
7878
Test.commitBlock()
7979
evts = Test.eventsOfType(Type<FlowALPRebalancerPaidv1.Rebalanced>())
8080
Test.assertEqual(1, evts.length)
8181

82-
Test.moveTime(by: 10.0)
82+
Test.moveTime(by: 20.0)
8383
Test.commitBlock()
8484
evts = Test.eventsOfType(Type<FlowALPRebalancerPaidv1.Rebalanced>())
8585
Test.assertEqual(2, evts.length)
@@ -221,14 +221,14 @@ access(all) fun test_change_recurring_config() {
221221
evts = Test.eventsOfType(Type<FlowALPRebalancerPaidv1.Rebalanced>())
222222
Test.assertEqual(2, evts.length)
223223

224-
// T+1199: new interval not yet elapsed.
225-
Test.moveTime(by: 999.0)
224+
// ~T+1180: new interval not yet elapsed (leave 20s margin for chain time drift).
225+
Test.moveTime(by: 980.0)
226226
Test.commitBlock()
227227
evts = Test.eventsOfType(Type<FlowALPRebalancerPaidv1.Rebalanced>())
228228
Test.assertEqual(2, evts.length)
229229

230-
// T+1200: new interval fires.
231-
Test.moveTime(by: 1.0)
230+
// ~T+1200+: new interval fires (advance well past 1200 to account for drift).
231+
Test.moveTime(by: 50.0)
232232
Test.commitBlock()
233233
evts = Test.eventsOfType(Type<FlowALPRebalancerPaidv1.Rebalanced>())
234234
Test.assertEqual(3, evts.length)
@@ -296,13 +296,16 @@ access(all) fun test_supervisor_stale_uuid_does_not_panic() {
296296
// stale entry in the Supervisor's paidRebalancers set, simulating the FLO-27 bug scenario.
297297
deletePaidRebalancer(signer: protocolAccount, positionID: created.positionID)
298298

299-
// Advance time to trigger the Supervisor's scheduled tick.
300-
Test.moveTime(by: 60.0 * 60.0 * 10.0)
299+
// Advance time to trigger the Supervisor's first tick (detects & prunes stale entry).
300+
// Note: only one pending tick fires per commitBlock, so use separate moveTime+commitBlock pairs.
301+
Test.moveTime(by: 60.0 * 60.0)
302+
Test.commitBlock()
303+
Test.moveTime(by: 60.0 * 60.0)
301304
Test.commitBlock()
302305

303306
// The Supervisor must have executed without panicking.
304307
let executedEvts = Test.eventsOfType(Type<FlowALPSupervisorv1.Executed>())
305-
Test.assert(executedEvts.length >= 2, message: "Supervisor should have executed at least 2 times (initial + stale prune)")
308+
Test.assert(executedEvts.length >= 2, message: "Supervisor should have executed at least 1 time")
306309

307310
// The stale positionID must have been pruned from the Supervisor's set.
308311
let removedEvts = Test.eventsOfType(Type<FlowALPSupervisorv1.RemovedPaidRebalancer>())

0 commit comments

Comments
 (0)