Skip to content

Commit 8db12a2

Browse files
test: improve testing coverage
1 parent 1c53074 commit 8db12a2

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

enterprise/coderd/prebuilds/reconcile_test.go

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -824,14 +824,24 @@ func TestHardLimitedPresetShouldNotBlockDeletion(t *testing.T) {
824824

825825
// Test cases verify the behavior of prebuild creation depending on configured failure limits.
826826
testCases := []struct {
827-
name string
828-
hardLimit int64
829-
isHardLimitHit bool
827+
name string
828+
hardLimit int64
829+
createNewTemplateVersion bool
830+
deleteTemplate bool
830831
}{
831832
{
832-
name: "hard limit is hit - skip creation of prebuilt workspace",
833-
hardLimit: 1,
834-
isHardLimitHit: true,
833+
// hard limit is hit - but we allow deletion of prebuilt workspace because it's outdated (new template version was created)
834+
name: "new template version is created",
835+
hardLimit: 1,
836+
createNewTemplateVersion: true,
837+
deleteTemplate: false,
838+
},
839+
{
840+
// hard limit is hit - but we allow deletion of prebuilt workspace because template is deleted
841+
name: "template is deleted",
842+
hardLimit: 1,
843+
createNewTemplateVersion: false,
844+
deleteTemplate: true,
835845
},
836846
}
837847

@@ -988,12 +998,20 @@ func TestHardLimitedPresetShouldNotBlockDeletion(t *testing.T) {
988998
require.NotNil(t, metric.GetGauge())
989999
require.EqualValues(t, 1, metric.GetGauge().GetValue())
9901000

991-
// When: the template is deleted.
992-
require.NoError(t, db.UpdateTemplateDeletedByID(ctx, database.UpdateTemplateDeletedByIDParams{
993-
ID: template.ID,
994-
Deleted: true,
995-
UpdatedAt: dbtime.Now(),
996-
}))
1001+
if tc.createNewTemplateVersion {
1002+
// Create a new template version and mark it as active
1003+
// This marks the template version that we care about as inactive
1004+
setupTestDBTemplateVersion(ctx, t, clock, db, pubSub, org.ID, ownerID, template.ID)
1005+
}
1006+
1007+
if tc.deleteTemplate {
1008+
// When: the template is deleted.
1009+
require.NoError(t, db.UpdateTemplateDeletedByID(ctx, database.UpdateTemplateDeletedByIDParams{
1010+
ID: template.ID,
1011+
Deleted: true,
1012+
UpdatedAt: dbtime.Now(),
1013+
}))
1014+
}
9971015

9981016
// Trigger reconciliation to make sure that successful, but outdated prebuilt workspace will be deleted.
9991017
require.NoError(t, controller.ReconcileAll(ctx))

0 commit comments

Comments
 (0)