Expose validation errors through the root API
This commit is contained in:
@@ -101,6 +101,35 @@ func Open(context.Context) *Handle { return nil }
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidationDiagnosticTypesBelongToFacade(t *testing.T) {
|
||||
valid := `package facade
|
||||
type ValidationCheck string
|
||||
type ValidationFinding struct{}
|
||||
type FileSizeMeasurement struct{}
|
||||
type ValidationError struct {
|
||||
Check ValidationCheck
|
||||
Findings []ValidationFinding
|
||||
Measurement *FileSizeMeasurement
|
||||
Cause error
|
||||
}
|
||||
`
|
||||
pkg := typecheck(t, token.NewFileSet(), modulePath, valid)
|
||||
if violations := checkValidationTypes(pkg); len(violations) != 0 {
|
||||
t.Fatalf("checkValidationTypes() = %v, want facade-owned diagnostics", violations)
|
||||
}
|
||||
|
||||
implementation := typecheck(t, token.NewFileSet(), "example.com/implementation", `package implementation
|
||||
type State string
|
||||
`)
|
||||
fset := token.NewFileSet()
|
||||
fixtureImporter := singlePackageImporter{path: "example.com/implementation", pkg: implementation}
|
||||
invalid := strings.Replace(valid, "type ValidationCheck string", "import \"example.com/implementation\"\ntype ValidationCheck = implementation.State", 1)
|
||||
pkg = typecheckWithImporter(t, fset, modulePath, invalid, fixtureImporter)
|
||||
if violations := checkValidationTypes(pkg); !strings.Contains(strings.Join(violations, "\n"), "ValidationCheck is not a facade-owned named type") {
|
||||
t.Fatalf("checkValidationTypes() = %v, want ownership violation", violations)
|
||||
}
|
||||
}
|
||||
|
||||
func TestActualRepositoryBoundaries(t *testing.T) {
|
||||
if err := checkRepository(t.Context(), "../.."); err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
Reference in New Issue
Block a user