@@ -13,7 +13,9 @@ import (
1313 "github.com/stretchr/testify/assert"
1414 "golang.org/x/xerrors"
1515
16+ "github.com/coder/coder/v2/coderd/coderdtest"
1617 "github.com/coder/coder/v2/coderd/database/dbtime"
18+ "github.com/coder/coder/v2/coderd/files"
1719 "github.com/coder/coder/v2/coderd/notifications"
1820 "github.com/coder/coder/v2/coderd/notifications/notificationstest"
1921 "github.com/coder/coder/v2/coderd/util/slice"
@@ -53,7 +55,8 @@ func TestNoReconciliationActionsIfNoPresets(t *testing.T) {
5355 ReconciliationInterval : serpent .Duration (testutil .WaitLong ),
5456 }
5557 logger := testutil .Logger (t )
56- controller := prebuilds .NewStoreReconciler (db , ps , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
58+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
59+ controller := prebuilds .NewStoreReconciler (db , ps , cache , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
5760
5861 // given a template version with no presets
5962 org := dbgen .Organization (t , db , database.Organization {})
@@ -98,7 +101,8 @@ func TestNoReconciliationActionsIfNoPrebuilds(t *testing.T) {
98101 ReconciliationInterval : serpent .Duration (testutil .WaitLong ),
99102 }
100103 logger := testutil .Logger (t )
101- controller := prebuilds .NewStoreReconciler (db , ps , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
104+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
105+ controller := prebuilds .NewStoreReconciler (db , ps , cache , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
102106
103107 // given there are presets, but no prebuilds
104108 org := dbgen .Organization (t , db , database.Organization {})
@@ -375,7 +379,8 @@ func TestPrebuildReconciliation(t *testing.T) {
375379 if useBrokenPubsub {
376380 pubSub = & brokenPublisher {Pubsub : pubSub }
377381 }
378- controller := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
382+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
383+ controller := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
379384
380385 // Run the reconciliation multiple times to ensure idempotency
381386 // 8 was arbitrary, but large enough to reasonably trust the result
@@ -452,7 +457,8 @@ func TestMultiplePresetsPerTemplateVersion(t *testing.T) {
452457 t , & slogtest.Options {IgnoreErrors : true },
453458 ).Leveled (slog .LevelDebug )
454459 db , pubSub := dbtestutil .NewDB (t )
455- controller := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
460+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
461+ controller := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
456462
457463 ownerID := uuid .New ()
458464 dbgen .User (t , db , database.User {
@@ -577,7 +583,8 @@ func TestPrebuildScheduling(t *testing.T) {
577583 t , & slogtest.Options {IgnoreErrors : true },
578584 ).Leveled (slog .LevelDebug )
579585 db , pubSub := dbtestutil .NewDB (t )
580- controller := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , clock , prometheus .NewRegistry (), newNoopEnqueuer ())
586+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
587+ controller := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , clock , prometheus .NewRegistry (), newNoopEnqueuer ())
581588
582589 ownerID := uuid .New ()
583590 dbgen .User (t , db , database.User {
@@ -681,7 +688,8 @@ func TestInvalidPreset(t *testing.T) {
681688 t , & slogtest.Options {IgnoreErrors : true },
682689 ).Leveled (slog .LevelDebug )
683690 db , pubSub := dbtestutil .NewDB (t )
684- controller := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
691+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
692+ controller := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
685693
686694 ownerID := uuid .New ()
687695 dbgen .User (t , db , database.User {
@@ -745,7 +753,8 @@ func TestDeletionOfPrebuiltWorkspaceWithInvalidPreset(t *testing.T) {
745753 t , & slogtest.Options {IgnoreErrors : true },
746754 ).Leveled (slog .LevelDebug )
747755 db , pubSub := dbtestutil .NewDB (t )
748- controller := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
756+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
757+ controller := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , quartz .NewMock (t ), prometheus .NewRegistry (), newNoopEnqueuer ())
749758
750759 ownerID := uuid .New ()
751760 dbgen .User (t , db , database.User {
@@ -841,7 +850,8 @@ func TestSkippingHardLimitedPresets(t *testing.T) {
841850 db , pubSub := dbtestutil .NewDB (t )
842851 fakeEnqueuer := newFakeEnqueuer ()
843852 registry := prometheus .NewRegistry ()
844- controller := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , clock , registry , fakeEnqueuer )
853+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
854+ controller := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , clock , registry , fakeEnqueuer )
845855
846856 // Template admin to receive a notification.
847857 templateAdmin := dbgen .User (t , db , database.User {
@@ -1003,7 +1013,8 @@ func TestHardLimitedPresetShouldNotBlockDeletion(t *testing.T) {
10031013 db , pubSub := dbtestutil .NewDB (t )
10041014 fakeEnqueuer := newFakeEnqueuer ()
10051015 registry := prometheus .NewRegistry ()
1006- controller := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , clock , registry , fakeEnqueuer )
1016+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
1017+ controller := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , clock , registry , fakeEnqueuer )
10071018
10081019 // Template admin to receive a notification.
10091020 templateAdmin := dbgen .User (t , db , database.User {
@@ -1215,7 +1226,8 @@ func TestRunLoop(t *testing.T) {
12151226 t , & slogtest.Options {IgnoreErrors : true },
12161227 ).Leveled (slog .LevelDebug )
12171228 db , pubSub := dbtestutil .NewDB (t )
1218- reconciler := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , clock , prometheus .NewRegistry (), newNoopEnqueuer ())
1229+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
1230+ reconciler := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , clock , prometheus .NewRegistry (), newNoopEnqueuer ())
12191231
12201232 ownerID := uuid .New ()
12211233 dbgen .User (t , db , database.User {
@@ -1345,7 +1357,8 @@ func TestFailedBuildBackoff(t *testing.T) {
13451357 t , & slogtest.Options {IgnoreErrors : true },
13461358 ).Leveled (slog .LevelDebug )
13471359 db , ps := dbtestutil .NewDB (t )
1348- reconciler := prebuilds .NewStoreReconciler (db , ps , cfg , logger , clock , prometheus .NewRegistry (), newNoopEnqueuer ())
1360+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
1361+ reconciler := prebuilds .NewStoreReconciler (db , ps , cache , cfg , logger , clock , prometheus .NewRegistry (), newNoopEnqueuer ())
13491362
13501363 // Given: an active template version with presets and prebuilds configured.
13511364 const desiredInstances = 2
@@ -1461,9 +1474,11 @@ func TestReconciliationLock(t *testing.T) {
14611474 wg .Add (1 )
14621475 go func () {
14631476 defer wg .Done ()
1477+ cache := files .NewFromStore (db , prometheus .NewRegistry (), & coderdtest.FakeAuthorizer {})
14641478 reconciler := prebuilds .NewStoreReconciler (
14651479 db ,
14661480 ps ,
1481+ cache ,
14671482 codersdk.PrebuildsConfig {},
14681483 slogtest .Make (t , & slogtest.Options {IgnoreErrors : true }).Leveled (slog .LevelDebug ),
14691484 quartz .NewMock (t ),
@@ -1501,7 +1516,8 @@ func TestTrackResourceReplacement(t *testing.T) {
15011516
15021517 fakeEnqueuer := newFakeEnqueuer ()
15031518 registry := prometheus .NewRegistry ()
1504- reconciler := prebuilds .NewStoreReconciler (db , ps , codersdk.PrebuildsConfig {}, logger , clock , registry , fakeEnqueuer )
1519+ cache := files .NewFromStore (db , registry , & coderdtest.FakeAuthorizer {})
1520+ reconciler := prebuilds .NewStoreReconciler (db , ps , cache , codersdk.PrebuildsConfig {}, logger , clock , registry , fakeEnqueuer )
15051521
15061522 // Given: a template admin to receive a notification.
15071523 templateAdmin := dbgen .User (t , db , database.User {
@@ -1656,7 +1672,8 @@ func TestExpiredPrebuildsMultipleActions(t *testing.T) {
16561672 db , pubSub := dbtestutil .NewDB (t )
16571673 fakeEnqueuer := newFakeEnqueuer ()
16581674 registry := prometheus .NewRegistry ()
1659- controller := prebuilds .NewStoreReconciler (db , pubSub , cfg , logger , clock , registry , fakeEnqueuer )
1675+ cache := files .NewFromStore (db , registry , & coderdtest.FakeAuthorizer {})
1676+ controller := prebuilds .NewStoreReconciler (db , pubSub , cache , cfg , logger , clock , registry , fakeEnqueuer )
16601677
16611678 // Set up test environment with a template, version, and preset
16621679 ownerID := uuid .New ()
0 commit comments