fleet/orbit/pkg/update/flag_runner_test.go
2022-09-27 19:31:23 +00:00

67 lines
1.4 KiB
Go

package update
import (
"encoding/json"
"reflect"
"testing"
"github.com/stretchr/testify/require"
)
var rawJSONFlags = json.RawMessage(`{"verbose":true, "num":5, "hello":"world", "largeNum":1234567890}`)
func TestGetFlagsFromJson(t *testing.T) {
flagsJson, err := getFlagsFromJSON(rawJSONFlags)
require.NoError(t, err)
require.NotEmpty(t, flagsJson)
value, ok := flagsJson["--verbose"]
if !ok {
t.Errorf(`key ""--verbose" expected but not found`)
}
if value != "true" {
t.Errorf(`expected "true", got %s`, value)
}
value, ok = flagsJson["--num"]
if !ok {
t.Errorf(`key "--num" expected but not found`)
}
if value != "5" {
t.Errorf(`expected "5", got %s`, value)
}
value, ok = flagsJson["--hello"]
if !ok {
t.Errorf(`key "--hello" expected but not found`)
}
if value != "world" {
t.Errorf(`expected "world", got %s`, value)
}
value, ok = flagsJson["--largeNum"]
if !ok {
t.Errorf(`key "--largeNum" expected but not found`)
}
if value != "1234567890" {
t.Errorf(`expected "1234567890", got %s`, value)
}
}
func TestWriteFlagFile(t *testing.T) {
flags, err := getFlagsFromJSON(rawJSONFlags)
require.NoError(t, err)
tempDir := t.TempDir()
err = writeFlagFile(tempDir, flags)
require.NoError(t, err)
diskFlags, err := readFlagFile(tempDir)
require.NoError(t, err)
require.NotEmpty(t, diskFlags)
if !reflect.DeepEqual(flags, diskFlags) {
t.Errorf("expected flags to be equal: %v, %v", flags, diskFlags)
}
}