github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/command/operator_scheduler_get_config_test.go (about) 1 package command 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/hashicorp/nomad/api" 8 "github.com/hashicorp/nomad/ci" 9 "github.com/mitchellh/cli" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestOperatorSchedulerGetConfig_Run(t *testing.T) { 14 ci.Parallel(t) 15 16 srv, _, addr := testServer(t, false, nil) 17 defer srv.Shutdown() 18 19 ui := cli.NewMockUi() 20 c := &OperatorSchedulerGetConfig{Meta: Meta{Ui: ui}} 21 22 // Run the command, so we get the default output and test this. 23 require.EqualValues(t, 0, c.Run([]string{"-address=" + addr})) 24 s := ui.OutputWriter.String() 25 require.Contains(t, s, "Scheduler Algorithm = binpack") 26 require.Contains(t, s, "Preemption SysBatch Scheduler = false") 27 ui.ErrorWriter.Reset() 28 ui.OutputWriter.Reset() 29 30 // Request JSON output and test. 31 require.EqualValues(t, 0, c.Run([]string{"-address=" + addr, "-json"})) 32 s = ui.OutputWriter.String() 33 var js api.SchedulerConfiguration 34 require.NoError(t, json.Unmarshal([]byte(s), &js)) 35 ui.ErrorWriter.Reset() 36 ui.OutputWriter.Reset() 37 38 // Request a template output and test. 39 require.EqualValues(t, 0, c.Run([]string{"-address=" + addr, "-t='{{printf \"%s!!!\" .SchedulerConfig.SchedulerAlgorithm}}'"})) 40 require.Contains(t, ui.OutputWriter.String(), "binpack!!!") 41 ui.ErrorWriter.Reset() 42 ui.OutputWriter.Reset() 43 44 // Test an unsupported flag. 45 require.EqualValues(t, 1, c.Run([]string{"-address=" + addr, "-yaml"})) 46 require.Contains(t, ui.OutputWriter.String(), "Usage: nomad operator scheduler get-config") 47 }