A template marked as deprecated will not have prebuilds running.
(t *testing.T)
| 834 | |
| 835 | // A template marked as deprecated will not have prebuilds running. |
| 836 | func TestDeprecated(t *testing.T) { |
| 837 | t.Parallel() |
| 838 | current := opts[optionSet0] |
| 839 | clock := quartz.NewMock(t) |
| 840 | |
| 841 | // GIVEN: a preset with 1 desired prebuild. |
| 842 | presets := []database.GetTemplatePresetsWithPrebuildsRow{ |
| 843 | preset(true, 1, current, func(row database.GetTemplatePresetsWithPrebuildsRow) database.GetTemplatePresetsWithPrebuildsRow { |
| 844 | row.Deprecated = true |
| 845 | return row |
| 846 | }), |
| 847 | } |
| 848 | |
| 849 | // GIVEN: 1 running prebuilds for the preset. |
| 850 | running := []database.GetRunningPrebuiltWorkspacesRow{ |
| 851 | prebuiltWorkspace(current, clock), |
| 852 | } |
| 853 | |
| 854 | // GIVEN: NO prebuilds in progress. |
| 855 | var inProgress []database.CountInProgressPrebuildsRow |
| 856 | |
| 857 | // WHEN: calculating the current preset's state. |
| 858 | snapshot := prebuilds.NewGlobalSnapshot(presets, nil, running, inProgress, nil, nil, nil, quartz.NewMock(t), testutil.Logger(t)) |
| 859 | ps, err := snapshot.FilterByPreset(current.presetID) |
| 860 | require.NoError(t, err) |
| 861 | |
| 862 | // THEN: all running prebuilds should be deleted because the template is deprecated. |
| 863 | state := ps.CalculateState() |
| 864 | actions, err := ps.CalculateActions(backoffInterval) |
| 865 | require.NoError(t, err) |
| 866 | validateState(t, prebuilds.ReconciliationState{ |
| 867 | Actual: 1, |
| 868 | }, *state) |
| 869 | validateActions(t, []*prebuilds.ReconciliationActions{ |
| 870 | { |
| 871 | ActionType: prebuilds.ActionTypeDelete, |
| 872 | DeleteIDs: []uuid.UUID{current.prebuiltWorkspaceID}, |
| 873 | }, |
| 874 | }, actions) |
| 875 | } |
| 876 | |
| 877 | // If the latest build failed, backoff exponentially with the given interval. |
| 878 | func TestLatestBuildFailed(t *testing.T) { |
nothing calls this directly
no test coverage detected