fixed tests

quietlight
May 6, 2026, 11:04 PM
Q4JPMGETIYLDXTXX3FCR6MYIZDHSZRL35UB2GJGAAAQN3CMRD2WAC

Dependencies

  • [2] JZRF7OBJ refactor to get db omports out of utils, but still have failing tests, may need updating
  • [3] TUC452XH new util shared by 3 cmd's needing location
  • [4] LBWQJEDH minor refactor and more tests for utils/
  • [5] KZKLAINJ run out of space on nest, cleaned out
  • [6] FCCJNYCV more tests for utils/
  • [*] BZ6KQRYD added complexity lint test

Change contents

  • file deletion: deps_test.go (----------)
    [3.1][2.2726:2762](),[2.2762][2.316:316]()
    package utils
    import (
    "go/parser"
    "go/token"
    "os/exec"
    "strings"
    "testing"
    )
    // TestPackageDependencies enforces the project's package dependency rules
    // defined in CLAUDE.md. Packages may only import packages below them:
    //
    // cmd → tools, tui, utils, db
    // tools → utils, db
    // tui → tools, utils
    // utils → (nothing — leaf package)
    // db → utils
    //
    // Note: This test lives in utils/ only because it needs to be in some
    // package. It validates rules for ALL project packages.
    func TestPackageDependencies(t *testing.T) {
    rules := map[string]map[string]bool{
    // pkg → set of allowed skraak-internal imports
    "skraak/cmd": {"skraak/tools": true, "skraak/tui": true, "skraak/utils": true, "skraak/db": true},
    "skraak/tools": {"skraak/utils": true, "skraak/db": true},
    "skraak/tui": {"skraak/tools": true, "skraak/utils": true},
    "skraak/utils": {}, // leaf package — no skraak imports allowed
    "skraak/db": {"skraak/utils": true},
    }
    for pkg, allowed := range rules {
    imports := getInternalImports(t, pkg)
    for _, imp := range imports {
    if !allowed[imp] {
    t.Errorf("%s imports %s — not allowed by dependency rules", pkg, imp)
    }
    }
    }
    }
    // TestNoDirectDBImportInUtils checks that no file in utils/ imports skraak/db.
    // This is a fast source-level check that doesn't require `go list`.
    func TestNoDirectDBImportInUtils(t *testing.T) {
    fset := token.NewFileSet()
    pkgs, err := parser.ParseDir(fset, ".", nil, parser.ImportsOnly)
    if err != nil {
    t.Fatalf("parse utils/: %v", err)
    }
    for _, pkg := range pkgs {
    for filename, file := range pkg.Files {
    for _, imp := range file.Imports {
    path := strings.Trim(imp.Path.Value, `"`)
    if path == "skraak/db" {
    t.Errorf("%s: forbidden import of skraak/db (utils is the leaf package)", filename)
    }
    }
    }
    }
    }
    // getInternalImports returns the skraak-internal imports for a package using `go list`.
    func getInternalImports(t *testing.T, pkg string) []string {
    t.Helper()
    out, err := exec.Command("go", "list", "-f", "{{range .Imports}}{{.}}\n{{end}}", pkg).Output()
    if err != nil {
    t.Fatalf("go list %s: %v", pkg, err)
    }
    var internal []string
    for line := range strings.SplitSeq(string(out), "\n") {
    line = strings.TrimSpace(line)
    if strings.HasPrefix(line, "skraak/") || line == "skraak" {
    internal = append(internal, line)
    }
    }
    return internal
    }
  • edit in utils/check_duplicate_hash_test.go at line 6
    [3.6671]
    [3.6671]
    _ "github.com/duckdb/duckdb-go/v2"
  • edit in lint_test.go at line 5
    [3.776200]
    [3.776200]
    "strings"
  • edit in lint_test.go at line 56
    [8.340]
    // TestPackageDependencies enforces the project's package dependency rules
    // defined in CLAUDE.md. Packages may only import packages below them:
    //
    // cmd → tools, tui, utils, db
    // tools → utils, db
    // tui → tools, utils
    // utils → (nothing — leaf package)
    // db → utils
    func TestPackageDependencies(t *testing.T) {
    rules := map[string]map[string]bool{
    "skraak/cmd": {"skraak/tools": true, "skraak/tui": true, "skraak/utils": true, "skraak/db": true},
    "skraak/tools": {"skraak/utils": true, "skraak/db": true},
    "skraak/tui": {"skraak/tools": true, "skraak/utils": true},
    "skraak/utils": {}, // leaf package — no skraak imports allowed
    "skraak/db": {"skraak/utils": true},
    }
    for pkg, allowed := range rules {
    imports := getInternalImports(t, pkg)
    for _, imp := range imports {
    if !allowed[imp] {
    t.Errorf("%s imports %s — not allowed by dependency rules", pkg, imp)
    }
    }
    }
    }
    // TestNoDirectDBImportInUtils checks that no file in utils/ imports skraak/db.
    // Fast source-level check using go/packages.
    func TestNoDirectDBImportInUtils(t *testing.T) {
    importPaths := getInternalImports(t, "skraak/utils")
    for _, imp := range importPaths {
    if imp == "skraak/db" {
    t.Error("utils/ imports skraak/db — forbidden (utils is the leaf package)")
    }
    }
    }
    // getInternalImports returns the skraak-internal imports for a package using `go list`.
    func getInternalImports(t *testing.T, pkg string) []string {
    t.Helper()
    out, err := exec.Command("go", "list", "-f", "{{range .Imports}}{{.}}\n{{end}}", pkg).Output()
    if err != nil {
    t.Fatalf("go list %s: %v", pkg, err)
    }
    var internal []string
    for line := range strings.SplitSeq(string(out), "\n") {
    line = strings.TrimSpace(line)
    if strings.HasPrefix(line, "skraak/") || line == "skraak" {
    internal = append(internal, line)
    }
    }
    return internal
    }