MCPcopy Create free account
hub / github.com/coder/coder / TestDeprecated

Function TestDeprecated

coderd/prebuilds/preset_snapshot_test.go:836–875  ·  view source on GitHub ↗

A template marked as deprecated will not have prebuilds running.

(t *testing.T)

Source from the content-addressed store, hash-verified

834
835// A template marked as deprecated will not have prebuilds running.
836func 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.
878func TestLatestBuildFailed(t *testing.T) {

Callers

nothing calls this directly

Calls 9

FilterByPresetMethod · 0.95
NewGlobalSnapshotFunction · 0.92
LoggerFunction · 0.92
presetFunction · 0.85
prebuiltWorkspaceFunction · 0.85
validateStateFunction · 0.85
validateActionsFunction · 0.85
CalculateStateMethod · 0.80
CalculateActionsMethod · 0.45

Tested by

no test coverage detected