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