test: Add test asserting deprecation warnings are present when legacy `env` subcommands are used (#38091)

matejrisek/actions/on_failure^2
Sarah French 4 weeks ago committed by GitHub
parent 492d342aab
commit ac3e32b62b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -779,7 +779,106 @@ func TestWorkspace_selectWithOrCreate(t *testing.T) {
if current != "test" {
t.Fatalf("current workspace should be 'test', got %q", current)
}
}
// Test that the old `env` subcommands raise a deprecation warning
//
// Test covers:
// - `terraform env new`
// - `terraform env select`
// - `terraform env list`
// - `terraform env delete`
//
// Note: there is no `env` equivalent of `terraform workspace show`.
func TestWorkspace_envCommandDeprecationWarnings(t *testing.T) {
// We're asserting the warning below is returned whenever a legacy `env` command
// is executed. Commands are made to be legacy via LegacyName: true
expectedWarning := `Warning: the "terraform env" family of commands is deprecated`
// Create a temporary working directory to make workspaces in
td := t.TempDir()
os.MkdirAll(td, 0755)
t.Chdir(td)
newCmd := &WorkspaceNewCommand{}
current, _ := newCmd.Workspace()
if current != backend.DefaultStateName {
t.Fatal("current workspace should be 'default'")
}
// Assert `terraform env new "foobar"` returns expected deprecation warning
ui := new(cli.MockUi)
view, _ := testView(t)
newCmd = &WorkspaceNewCommand{
Meta: Meta{Ui: ui, View: view},
LegacyName: true,
}
newWorkspace := "foobar"
args := []string{newWorkspace}
if code := newCmd.Run(args); code != 0 {
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter)
}
if !strings.Contains(ui.ErrorWriter.String(), expectedWarning) {
t.Fatalf("expected the command to return a warning, but it was missing.\nwanted: %s\ngot: %s",
expectedWarning,
ui.ErrorWriter.String(),
)
}
// Assert `terraform env select "default"` returns expected deprecation warning
ui = new(cli.MockUi)
view, _ = testView(t)
selectCmd := &WorkspaceSelectCommand{
Meta: Meta{Ui: ui, View: view},
LegacyName: true,
}
defaultWorkspace := "default"
args = []string{defaultWorkspace}
if code := selectCmd.Run(args); code != 0 {
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter)
}
if !strings.Contains(ui.ErrorWriter.String(), expectedWarning) {
t.Fatalf("expected the command to return a warning, but it was missing.\nwanted: %s\ngot: %s",
expectedWarning,
ui.ErrorWriter.String(),
)
}
// Assert `terraform env list` returns expected deprecation warning
ui = new(cli.MockUi)
view, _ = testView(t)
listCmd := &WorkspaceListCommand{
Meta: Meta{Ui: ui, View: view},
LegacyName: true,
}
args = []string{}
if code := listCmd.Run(args); code != 0 {
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter)
}
if !strings.Contains(ui.ErrorWriter.String(), expectedWarning) {
t.Fatalf("expected the command to return a warning, but it was missing.\nwanted: %s\ngot: %s",
expectedWarning,
ui.ErrorWriter.String(),
)
}
// Assert `terraform env delete` returns expected deprecation warning
ui = new(cli.MockUi)
view, _ = testView(t)
deleteCmd := &WorkspaceDeleteCommand{
Meta: Meta{Ui: ui, View: view},
LegacyName: true,
}
args = []string{newWorkspace}
if code := deleteCmd.Run(args); code != 0 {
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter)
}
if !strings.Contains(ui.ErrorWriter.String(), expectedWarning) {
t.Fatalf("expected the command to return a warning, but it was missing.\nwanted: %s\ngot: %s",
expectedWarning,
ui.ErrorWriter.String(),
)
}
}
func TestValidWorkspaceName(t *testing.T) {

Loading…
Cancel
Save