command: Add test for invalid selected workspace
If somehow an invalid workspace has been selected, the Meta.Workspace method should not return an error, to ensure that we don't break any existing workflows with invalid workspace names.
This commit is contained in:
parent
8252920e9a
commit
96d2265ddb
|
@ -11,6 +11,7 @@ import (
|
||||||
"github.com/google/go-cmp/cmp"
|
"github.com/google/go-cmp/cmp"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/backend"
|
"github.com/hashicorp/terraform/backend"
|
||||||
|
"github.com/hashicorp/terraform/backend/local"
|
||||||
"github.com/hashicorp/terraform/terraform"
|
"github.com/hashicorp/terraform/terraform"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -238,6 +239,39 @@ func TestMeta_Workspace_override(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMeta_Workspace_invalidSelected(t *testing.T) {
|
||||||
|
td := tempDir(t)
|
||||||
|
os.MkdirAll(td, 0755)
|
||||||
|
defer os.RemoveAll(td)
|
||||||
|
defer testChdir(t, td)()
|
||||||
|
|
||||||
|
// this is an invalid workspace name
|
||||||
|
workspace := "test workspace"
|
||||||
|
|
||||||
|
// create the workspace directories
|
||||||
|
if err := os.MkdirAll(filepath.Join(local.DefaultWorkspaceDir, workspace), 0755); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the workspace file to select it
|
||||||
|
if err := os.MkdirAll(DefaultDataDir, 0755); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if err := ioutil.WriteFile(filepath.Join(DefaultDataDir, local.DefaultWorkspaceFile), []byte(workspace), 0644); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
m := new(Meta)
|
||||||
|
|
||||||
|
ws, err := m.Workspace()
|
||||||
|
if ws != workspace {
|
||||||
|
t.Errorf("Unexpected workspace\n got: %s\nwant: %s\n", ws, workspace)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Unexpected error: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestMeta_process(t *testing.T) {
|
func TestMeta_process(t *testing.T) {
|
||||||
test = false
|
test = false
|
||||||
defer func() { test = true }()
|
defer func() { test = true }()
|
||||||
|
|
Loading…
Reference in New Issue