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  }