Complete forge delivery regression coverage
This commit is contained in:
@@ -162,6 +162,30 @@ func TestRuntimeFacadeCannotDependOnExternalPackages(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestSharedDeliveryPackagesCannotDependOnGitea(t *testing.T) {
|
||||
allowed := []listedPackage{
|
||||
{ImportPath: modulePath + "/internal/delivery", Imports: []string{modulePath + "/internal/forge", modulePath + "/internal/artifact"}},
|
||||
{ImportPath: modulePath + "/internal/forge"},
|
||||
{ImportPath: modulePath + "/internal/artifact"},
|
||||
{ImportPath: modulePath + "/internal/gitea"},
|
||||
}
|
||||
if err := checkImportDirections(allowed); err != nil {
|
||||
t.Fatalf("shared delivery boundary rejected neutral dependencies: %v", err)
|
||||
}
|
||||
|
||||
violating := []listedPackage{
|
||||
{ImportPath: modulePath + "/internal/delivery", Imports: []string{modulePath + "/internal/policy"}},
|
||||
{ImportPath: modulePath + "/internal/policy", Imports: []string{modulePath + "/internal/gitea"}},
|
||||
{ImportPath: modulePath + "/internal/forge"},
|
||||
{ImportPath: modulePath + "/internal/artifact"},
|
||||
{ImportPath: modulePath + "/internal/gitea"},
|
||||
}
|
||||
err := checkImportDirections(violating)
|
||||
if err == nil || !strings.Contains(err.Error(), "shared package "+modulePath+"/internal/delivery depends on Gitea adapter") {
|
||||
t.Fatalf("checkImportDirections() error = %v, want transitive shared-delivery violation", err)
|
||||
}
|
||||
}
|
||||
|
||||
func checkFixture(t *testing.T, facadeSource string) []string {
|
||||
t.Helper()
|
||||
fset := token.NewFileSet()
|
||||
|
||||
Reference in New Issue
Block a user