Check committed file sizes
This commit is contained in:
@@ -8,15 +8,19 @@ import (
|
||||
)
|
||||
|
||||
func TestCandidateRequestMapsGoValidation(t *testing.T) {
|
||||
limit := int64(4096)
|
||||
request := candidateRequest(ReleaseRequest{
|
||||
Validation: ValidationSpec{Go: GoValidationSpec{
|
||||
Race: true, FullVet: true,
|
||||
CompileTargets: []Target{{OS: "linux", Arch: "amd64"}, {OS: "darwin", Arch: "arm64"}},
|
||||
}, GoFormat: true, ModuleDistribution: ModuleDistributionValidationSpec{WorkspaceFiles: true, LocalReplacements: true}},
|
||||
}, GoFormat: true, ModuleDistribution: ModuleDistributionValidationSpec{WorkspaceFiles: true, LocalReplacements: true}, FileSize: &FileSizeValidationSpec{LimitBytes: &limit, Exclusions: []string{"assets"}}},
|
||||
})
|
||||
if !request.Validation.Race || !request.Validation.FullVet || !request.Validation.GoFormat || !request.Validation.ModuleDistribution.WorkspaceFiles || !request.Validation.ModuleDistribution.LocalReplacements {
|
||||
t.Fatalf("candidate request validation = %#v, want race, full vet, formatting, and distribution checks enabled", request.Validation)
|
||||
}
|
||||
if request.Validation.FileSize == nil || request.Validation.FileSize.LimitBytes == nil || *request.Validation.FileSize.LimitBytes != limit || len(request.Validation.FileSize.Exclusions) != 1 || request.Validation.FileSize.Exclusions[0] != "assets" {
|
||||
t.Fatalf("candidate request file size = %#v, want configured limit and exclusions", request.Validation.FileSize)
|
||||
}
|
||||
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)
|
||||
@@ -28,6 +32,17 @@ func TestCandidateRequestMapsGoValidation(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCandidateRequestPreservesFileSizeObjectSelection(t *testing.T) {
|
||||
disabled := candidateRequest(ReleaseRequest{})
|
||||
enabled := candidateRequest(ReleaseRequest{Validation: ValidationSpec{FileSize: &FileSizeValidationSpec{}}})
|
||||
if disabled.Validation.FileSize != nil {
|
||||
t.Fatalf("omitted FileSize = %#v, want disabled", disabled.Validation.FileSize)
|
||||
}
|
||||
if enabled.Validation.FileSize == nil || enabled.Validation.FileSize.LimitBytes != nil {
|
||||
t.Fatalf("empty FileSize = %#v, want enabled default selection", enabled.Validation.FileSize)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidationErrorPreservesLocalReplacementsIdentityAndFinding(t *testing.T) {
|
||||
cause := errors.New("module declaration could not be read")
|
||||
got := convertValidationError(&validation.Failure{
|
||||
@@ -53,6 +68,21 @@ func TestValidationErrorPreservesLocalReplacementsIdentityAndFinding(t *testing.
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidationErrorPreservesFileSizeMeasurement(t *testing.T) {
|
||||
got := convertValidationError(&validation.Failure{
|
||||
Check: validation.FileSize,
|
||||
Findings: []validation.Finding{{Path: "assets/bundle.bin", Message: "committed file exceeds the selected size limit"}},
|
||||
Measurement: &validation.FileSizeMeasurement{Bytes: 12, LimitBytes: 10},
|
||||
})
|
||||
var validationError *ValidationError
|
||||
if !errors.As(got, &validationError) || validationError.Check != "file-size" {
|
||||
t.Fatalf("converted error = %#v, want file-size identity", got)
|
||||
}
|
||||
if validationError.Measurement == nil || validationError.Measurement.Bytes != 12 || validationError.Measurement.LimitBytes != 10 {
|
||||
t.Fatalf("converted measurement = %#v, want 12 bytes against 10", validationError.Measurement)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidationErrorPreservesGoVetIdentity(t *testing.T) {
|
||||
cause := errors.New("vet failed")
|
||||
got := convertValidationError(&validation.Failure{Check: validation.GoVet, Cause: cause})
|
||||
|
||||
Reference in New Issue
Block a user