@@ -824,14 +824,24 @@ func TestHardLimitedPresetShouldNotBlockDeletion(t *testing.T) {
824
824
825
825
// Test cases verify the behavior of prebuild creation depending on configured failure limits.
826
826
testCases := []struct {
827
- name string
828
- hardLimit int64
829
- isHardLimitHit bool
827
+ name string
828
+ hardLimit int64
829
+ createNewTemplateVersion bool
830
+ deleteTemplate bool
830
831
}{
831
832
{
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 ,
835
845
},
836
846
}
837
847
@@ -988,12 +998,20 @@ func TestHardLimitedPresetShouldNotBlockDeletion(t *testing.T) {
988
998
require .NotNil (t , metric .GetGauge ())
989
999
require .EqualValues (t , 1 , metric .GetGauge ().GetValue ())
990
1000
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
+ }
997
1015
998
1016
// Trigger reconciliation to make sure that successful, but outdated prebuilt workspace will be deleted.
999
1017
require .NoError (t , controller .ReconcileAll (ctx ))
0 commit comments