package releasekit import ( "errors" "testing" "gitea.maximumdirect.net/eric/ReleaseKit/internal/validation" ) func TestCandidateRequestMapsGoValidation(t *testing.T) { request := candidateRequest(ReleaseRequest{ Validation: ValidationSpec{Go: GoValidationSpec{ Race: true, FullVet: true, CompileTargets: []Target{{OS: "linux", Arch: "amd64"}, {OS: "darwin", Arch: "arm64"}}, }}, }) if !request.Validation.Race || !request.Validation.FullVet { t.Fatalf("candidate request validation = %#v, want race and full vet enabled", request.Validation) } want := []validation.Target{{OS: "linux", Arch: "amd64"}, {OS: "darwin", Arch: "arm64"}} if len(request.Validation.CompileTargets) != len(want) { t.Fatalf("candidate request compile targets = %#v, want %#v", request.Validation.CompileTargets, want) } for index := range want { if request.Validation.CompileTargets[index] != want[index] { t.Fatalf("candidate request compile targets = %#v, want %#v", request.Validation.CompileTargets, want) } } } func TestValidationErrorPreservesGoVetIdentity(t *testing.T) { cause := errors.New("vet failed") got := convertValidationError(&validation.Failure{Check: validation.GoVet, Cause: cause}) var validationError *ValidationError if !errors.As(got, &validationError) || validationError.Check != "go-vet" { t.Fatalf("converted error = %#v, want go-vet validation identity", got) } if !errors.Is(got, cause) { t.Fatalf("converted error = %v, want cause preserved", got) } }