Allow composition within command internal helpers
This commit is contained in:
@@ -182,3 +182,27 @@ func typecheckWithImporter(t *testing.T, fset *token.FileSet, path, source strin
|
||||
}
|
||||
return pkg
|
||||
}
|
||||
|
||||
func TestCommandInternalCompositionPreservesLibraryBoundaries(t *testing.T) {
|
||||
for _, test := range []struct {
|
||||
name, from, to string
|
||||
reject bool
|
||||
}{
|
||||
{"command helpers", "/cmd/releasekit/internal/cli/parser", "/cmd/releasekit/internal/cli/settings", false},
|
||||
{"other executable helpers", "/cmd/future/internal/parser", "/cmd/future/internal/settings", false},
|
||||
{"helper root", "/cmd/releasekit/internal", "/cmd/releasekit/internal/cli", false},
|
||||
{"controller uses facade", "/cmd/releasekit", "", false},
|
||||
{"library imports controller", "/internal/build", "/cmd/releasekit", true},
|
||||
{"library imports helper", "/internal/build", "/cmd/releasekit/internal/cli", true},
|
||||
{"helper imports facade", "/cmd/releasekit/internal/cli", "", true},
|
||||
{"helper imports runtime facade", "/cmd/releasekit/internal/cli", "/buildinfo", true},
|
||||
{"helper imports controller", "/cmd/releasekit/internal/cli", "/cmd/releasekit", true},
|
||||
} {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
err := checkImportDirections([]listedPackage{{ImportPath: modulePath + test.from, Imports: []string{modulePath + test.to}}})
|
||||
if (err != nil) != test.reject {
|
||||
t.Fatalf("dependency %s -> %s: %v", test.from, test.to, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user