open-nomad/nomad/structs/config/autopilot_test.go
2023-04-10 15:36:59 +00:00

57 lines
1.3 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package config
import (
"reflect"
"testing"
"time"
"github.com/hashicorp/nomad/ci"
)
func TestAutopilotConfig_Merge(t *testing.T) {
ci.Parallel(t)
trueValue, falseValue := true, false
c1 := &AutopilotConfig{
CleanupDeadServers: &falseValue,
ServerStabilizationTime: 1 * time.Second,
LastContactThreshold: 1 * time.Second,
MaxTrailingLogs: 1,
MinQuorum: 1,
EnableRedundancyZones: &trueValue,
DisableUpgradeMigration: &falseValue,
EnableCustomUpgrades: &trueValue,
}
c2 := &AutopilotConfig{
CleanupDeadServers: &trueValue,
ServerStabilizationTime: 2 * time.Second,
LastContactThreshold: 2 * time.Second,
MaxTrailingLogs: 2,
MinQuorum: 2,
EnableRedundancyZones: nil,
DisableUpgradeMigration: nil,
EnableCustomUpgrades: nil,
}
e := &AutopilotConfig{
CleanupDeadServers: &trueValue,
ServerStabilizationTime: 2 * time.Second,
LastContactThreshold: 2 * time.Second,
MaxTrailingLogs: 2,
MinQuorum: 2,
EnableRedundancyZones: &trueValue,
DisableUpgradeMigration: &falseValue,
EnableCustomUpgrades: &trueValue,
}
result := c1.Merge(c2)
if !reflect.DeepEqual(result, e) {
t.Fatalf("bad:\n%#v\n%#v", result, e)
}
}