@@ -194,7 +194,7 @@ func TestEngineQueue_Finalize(t *testing.T) {
194194
195195 emitter := & testutils.MockEmitter {}
196196 ec := new (fakeEngineController )
197- fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, l1F , ec )
197+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, nil , l1F , ec )
198198 fi .AttachEmitter (emitter )
199199
200200 // now say C1 was included in D and became the new safe head
@@ -229,7 +229,7 @@ func TestEngineQueue_Finalize(t *testing.T) {
229229
230230 emitter := & testutils.MockEmitter {}
231231 ec := new (fakeEngineController )
232- fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, l1F , ec )
232+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, nil , l1F , ec )
233233 fi .AttachEmitter (emitter )
234234
235235 // now say C1 was included in D and became the new safe head
@@ -268,7 +268,7 @@ func TestEngineQueue_Finalize(t *testing.T) {
268268
269269 emitter := & testutils.MockEmitter {}
270270 ec := new (fakeEngineController )
271- fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, l1F , ec )
271+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, nil , l1F , ec )
272272 fi .AttachEmitter (emitter )
273273
274274 fi .OnEvent (ctx , engine.SafeDerivedEvent {Safe : refC1 , Source : refD })
@@ -352,7 +352,7 @@ func TestEngineQueue_Finalize(t *testing.T) {
352352
353353 emitter := & testutils.MockEmitter {}
354354 ec := new (fakeEngineController )
355- fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, l1F , ec )
355+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, nil , l1F , ec )
356356 fi .AttachEmitter (emitter )
357357
358358 // now say B1 was included in C and became the new safe head
@@ -389,7 +389,7 @@ func TestEngineQueue_Finalize(t *testing.T) {
389389
390390 emitter := & testutils.MockEmitter {}
391391 ec := new (fakeEngineController )
392- fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, l1F , ec )
392+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, nil , l1F , ec )
393393 fi .AttachEmitter (emitter )
394394
395395 // now say B1 was included in C and became the new safe head
@@ -486,7 +486,7 @@ func TestEngineQueue_Finalize(t *testing.T) {
486486 ec := new (fakeEngineController )
487487 fi := NewFinalizer (context .Background (), logger , & rollup.Config {
488488 InteropTime : & refC1 .Time ,
489- }, l1F , ec )
489+ }, nil , l1F , ec )
490490 fi .AttachEmitter (emitter )
491491
492492 // now say C0 and C1 were included in D and became the new safe head
@@ -504,3 +504,101 @@ func TestEngineQueue_Finalize(t *testing.T) {
504504 emitter .AssertExpectations (t )
505505 })
506506}
507+
508+ func TestFinalizerConfig (t * testing.T ) {
509+ t .Run ("uses custom finality lookback" , func (t * testing.T ) {
510+ logger := testlog .Logger (t , log .LevelError )
511+ l1F := & testutils.MockL1Source {}
512+ ec := new (fakeEngineController )
513+
514+ customLookback := uint64 (200 )
515+ finalizerCfg := & Config {
516+ FinalityLookback : & customLookback ,
517+ }
518+
519+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, finalizerCfg , l1F , ec )
520+
521+ require .Equal (t , customLookback , fi .finalityLookback , "should use custom finality lookback" )
522+ require .Equal (t , int (customLookback ), cap (fi .finalityData ), "finalityData capacity should match custom lookback" )
523+ })
524+
525+ t .Run ("uses custom finality delay" , func (t * testing.T ) {
526+ logger := testlog .Logger (t , log .LevelError )
527+ l1F := & testutils.MockL1Source {}
528+ ec := new (fakeEngineController )
529+
530+ customDelay := uint64 (32 )
531+ finalizerCfg := & Config {
532+ FinalityDelay : & customDelay ,
533+ }
534+
535+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, finalizerCfg , l1F , ec )
536+
537+ require .Equal (t , customDelay , fi .finalityDelay , "should use custom finality delay" )
538+ })
539+
540+ t .Run ("uses defaults when config is nil" , func (t * testing.T ) {
541+ logger := testlog .Logger (t , log .LevelError )
542+ l1F := & testutils.MockL1Source {}
543+ ec := new (fakeEngineController )
544+
545+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, nil , l1F , ec )
546+
547+ require .Equal (t , uint64 (defaultFinalityLookback ), fi .finalityLookback , "should use default finality lookback when config is nil" )
548+ require .Equal (t , uint64 (finalityDelay ), fi .finalityDelay , "should use default finality delay when config is nil" )
549+ })
550+
551+ t .Run ("uses defaults when config fields are nil" , func (t * testing.T ) {
552+ logger := testlog .Logger (t , log .LevelError )
553+ l1F := & testutils.MockL1Source {}
554+ ec := new (fakeEngineController )
555+
556+ // Passing empty config should behave same as nil
557+ finalizerCfg := & Config {}
558+
559+ fi := NewFinalizer (context .Background (), logger , & rollup.Config {}, finalizerCfg , l1F , ec )
560+
561+ require .Equal (t , uint64 (defaultFinalityLookback ), fi .finalityLookback , "should use default finality lookback when config fields are nil" )
562+ require .Equal (t , uint64 (finalityDelay ), fi .finalityDelay , "should use default finality delay when config fields are nil" )
563+ })
564+
565+ t .Run ("uses alt-da lookback when configured" , func (t * testing.T ) {
566+ logger := testlog .Logger (t , log .LevelError )
567+ l1F := & testutils.MockL1Source {}
568+ ec := new (fakeEngineController )
569+
570+ cfg := & rollup.Config {
571+ AltDAConfig : & rollup.AltDAConfig {
572+ DAChallengeWindow : 90 ,
573+ DAResolveWindow : 90 ,
574+ },
575+ }
576+
577+ fi := NewFinalizer (context .Background (), logger , cfg , nil , l1F , ec )
578+
579+ expectedLookback := uint64 (181 ) // 90 + 90 + 1
580+ require .Equal (t , expectedLookback , fi .finalityLookback , "should use alt-da calculated lookback" )
581+ })
582+
583+ t .Run ("custom lookback overrides alt-da calculation" , func (t * testing.T ) {
584+ logger := testlog .Logger (t , log .LevelError )
585+ l1F := & testutils.MockL1Source {}
586+ ec := new (fakeEngineController )
587+
588+ cfg := & rollup.Config {
589+ AltDAConfig : & rollup.AltDAConfig {
590+ DAChallengeWindow : 90 ,
591+ DAResolveWindow : 90 ,
592+ },
593+ }
594+
595+ customLookback := uint64 (300 )
596+ finalizerCfg := & Config {
597+ FinalityLookback : & customLookback ,
598+ }
599+
600+ fi := NewFinalizer (context .Background (), logger , cfg , finalizerCfg , l1F , ec )
601+
602+ require .Equal (t , customLookback , fi .finalityLookback , "custom lookback should override alt-da calculation" )
603+ })
604+ }
0 commit comments