Files
gpt-load/internal/codex/dependency_test.go
T

29 lines
951 B
Go

package codex
import (
"os/exec"
"strings"
"testing"
)
func TestBridgeDependencyStaysBehindCodexBoundary(t *testing.T) {
const bridge = "github.com/router-for-me/CLIProxyAPI/v7/gptload-embedded/embedded"
output, err := exec.Command(
"go", "list", "-f", `{{.ImportPath}}|{{join .Imports ","}},{{join .TestImports ","}},{{join .XTestImports ","}}`, "gpt-load/internal/...",
).CombinedOutput()
if err != nil {
t.Fatalf("go list Codex dependency boundary: %v\n%s", err, output)
}
for _, line := range strings.Split(strings.TrimSpace(string(output)), "\n") {
importer, imports, found := strings.Cut(line, "|")
if !found || importer == "gpt-load/internal/codex" || strings.HasPrefix(importer, "gpt-load/internal/codex/") {
continue
}
for _, dependency := range strings.Split(imports, ",") {
if dependency == bridge {
t.Errorf("%s directly imports CPA bridge; import gpt-load/internal/codex instead", importer)
}
}
}
}