mirror of
https://github.com/kemko/nomad.git
synced 2026-01-02 00:15:43 +03:00
* tests: swap testify for test in plugins/csi/client_test.go * tests: swap testify for test in testutil/ * tests: swap testify for test in host_test.go * tests: swap testify for test in plugin_test.go * tests: swap testify for test in utils_test.go * tests: swap testify for test in scheduler/ * tests: swap testify for test in parse_test.go * tests: swap testify for test in attribute_test.go * tests: swap testify for test in plugins/drivers/ * tests: swap testify for test in command/ * tests: fixup some test usages * go: run go mod tidy * windows: cpuset test only on linux
114 lines
2.7 KiB
Go
114 lines
2.7 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package command
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/mitchellh/cli"
|
|
"github.com/shoenig/test/must"
|
|
)
|
|
|
|
func TestCommand_Ui(t *testing.T) {
|
|
|
|
type testCaseSetupFn func(*testing.T)
|
|
|
|
cases := []struct {
|
|
Name string
|
|
SetupFn testCaseSetupFn
|
|
Args []string
|
|
ExpectedURL string
|
|
}{
|
|
{
|
|
Name: "default values",
|
|
ExpectedURL: "http://127.0.0.1:4646",
|
|
},
|
|
{
|
|
Name: "set namespace via flag",
|
|
Args: []string{"-namespace=dev"},
|
|
ExpectedURL: "http://127.0.0.1:4646?namespace=dev",
|
|
},
|
|
{
|
|
Name: "set region via flag",
|
|
Args: []string{"-region=earth"},
|
|
ExpectedURL: "http://127.0.0.1:4646?region=earth",
|
|
},
|
|
{
|
|
Name: "set region and namespace via flag",
|
|
Args: []string{"-region=earth", "-namespace=dev"},
|
|
ExpectedURL: "http://127.0.0.1:4646?namespace=dev®ion=earth",
|
|
},
|
|
{
|
|
Name: "set namespace via env var",
|
|
SetupFn: func(t *testing.T) {
|
|
t.Setenv("NOMAD_NAMESPACE", "dev")
|
|
},
|
|
ExpectedURL: "http://127.0.0.1:4646?namespace=dev",
|
|
},
|
|
{
|
|
Name: "set region via env var",
|
|
SetupFn: func(t *testing.T) {
|
|
t.Setenv("NOMAD_REGION", "earth")
|
|
},
|
|
ExpectedURL: "http://127.0.0.1:4646?region=earth",
|
|
},
|
|
{
|
|
Name: "set region and namespace via env var",
|
|
SetupFn: func(t *testing.T) {
|
|
t.Setenv("NOMAD_REGION", "earth")
|
|
t.Setenv("NOMAD_NAMESPACE", "dev")
|
|
},
|
|
ExpectedURL: "http://127.0.0.1:4646?namespace=dev®ion=earth",
|
|
},
|
|
{
|
|
Name: "set region and namespace via env var",
|
|
SetupFn: func(t *testing.T) {
|
|
t.Setenv("NOMAD_REGION", "earth")
|
|
t.Setenv("NOMAD_NAMESPACE", "dev")
|
|
},
|
|
ExpectedURL: "http://127.0.0.1:4646?namespace=dev®ion=earth",
|
|
},
|
|
{
|
|
Name: "flags have higher precedence",
|
|
SetupFn: func(t *testing.T) {
|
|
t.Setenv("NOMAD_REGION", "earth")
|
|
t.Setenv("NOMAD_NAMESPACE", "dev")
|
|
},
|
|
Args: []string{
|
|
"-region=mars",
|
|
"-namespace=prod",
|
|
},
|
|
ExpectedURL: "http://127.0.0.1:4646?namespace=prod®ion=mars",
|
|
},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
t.Run(tc.Name, func(t *testing.T) {
|
|
// Make sure environment variables are clean.
|
|
t.Setenv("NOMAD_NAMESPACE", "")
|
|
t.Setenv("NOMAD_REGION", "")
|
|
|
|
// Setup fake CLI UI and test case
|
|
ui := cli.NewMockUi()
|
|
cmd := &UiCommand{Meta: Meta{Ui: ui}}
|
|
|
|
if tc.SetupFn != nil {
|
|
tc.SetupFn(t)
|
|
}
|
|
|
|
// Don't try to open a browser.
|
|
args := append(tc.Args, "-show-url")
|
|
|
|
code := cmd.Run(args)
|
|
must.Zero(t, code)
|
|
|
|
got := ui.OutputWriter.String()
|
|
expected := fmt.Sprintf("URL for web UI: %s", tc.ExpectedURL)
|
|
must.Eq(t, expected, strings.TrimSpace(got))
|
|
})
|
|
}
|
|
}
|