Files
ReleaseKit/validation_test.go

42 lines
1.5 KiB
Go

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)
}
}