Initial phase 1 baseline implementation
Some checks failed
CI / Backend (push) Failing after 4s
CI / Frontend (push) Successful in 11s
CI / Contracts and repository policy (push) Failing after 5s
CI / Container (push) Has been skipped

This commit is contained in:
Elijah 2026-07-16 19:14:01 -07:00
parent 099c53badf
commit 077cf7601a
29 changed files with 1339 additions and 39 deletions

View file

@ -21,12 +21,16 @@ func TestImportBoundaries(t *testing.T) {
}{
{
directory: "internal/domain",
forbidden: []string{"net/http", "database/sql", "github.com/jackc/pgx", "/internal/adapters/", "/internal/transport/"},
forbidden: []string{"net/http", "database/sql", "github.com/jackc/pgx", "os", "io/fs", "path/filepath", "/internal/adapters/", "/internal/transport/"},
},
{
directory: "internal/transport",
forbidden: []string{"database/sql", "github.com/jackc/pgx", "os"},
},
{
directory: "internal/adapters/postgres",
forbidden: []string{"/internal/transport/"},
},
}
for _, rule := range rules {
@ -70,8 +74,15 @@ func assertImportAllowed(t *testing.T, path string, spec *ast.ImportSpec, forbid
t.Fatalf("unquote import in %s: %v", path, err)
}
for _, pattern := range forbidden {
if importPath == pattern || strings.Contains(importPath, pattern) {
if forbiddenImportMatches(importPath, pattern) {
t.Errorf("%s imports forbidden package %q", path, importPath)
}
}
}
func forbiddenImportMatches(importPath, pattern string) bool {
if strings.HasPrefix(pattern, "/") {
return strings.Contains(importPath, pattern)
}
return importPath == pattern || strings.HasPrefix(importPath, pattern+"/")
}