Files
xinfra/server/internal/service/delivery_test.go
T

45 lines
1.3 KiB
Go
Raw Normal View History

package service
import "testing"
func TestValidateDeliveryInput(t *testing.T) {
valid := MySQLDeliveryInput{BusinessLineID: 1, TargetID: 1, Namespace: "team-a", InstanceName: "mysql-01", CPUMilli: 500, MemoryMi: 1024, StorageGi: 10}
if err := validateDeliveryInput(valid); err != nil {
t.Fatalf("valid input rejected: %v", err)
}
withVersion := valid
withVersion.MySQLVersion = "8.0"
if err := validateDeliveryInput(withVersion); err != nil {
t.Fatalf("valid input with version 8.0 rejected: %v", err)
}
for name, input := range map[string]MySQLDeliveryInput{
"uppercase namespace": valid,
"bad instance": valid,
"too little memory": valid,
"too much memory": valid,
"too little storage": valid,
"too much storage": valid,
"unsupported version": valid,
} {
switch name {
case "uppercase namespace":
input.Namespace = "Team-A"
case "bad instance":
input.InstanceName = "mysql_01"
case "too little memory":
input.MemoryMi = 512
case "too much memory":
input.MemoryMi = 8192
case "too little storage":
input.StorageGi = 5
case "too much storage":
input.StorageGi = 200
case "unsupported version":
input.MySQLVersion = "5.7"
}
if err := validateDeliveryInput(input); err == nil {
t.Errorf("%s was accepted", name)
}
}
}