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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy