Initial phase 1 baseline implementation
This commit is contained in:
parent
099c53badf
commit
077cf7601a
29 changed files with 1339 additions and 39 deletions
|
|
@ -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+"/")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue