test: add comprehensive test suite - 5 test files, 65% coverage

- cli_test.go: 10 tests for list/search/extract/download commands
- serve_test.go: 11 tests for HTTP handlers and SSE progress
- http_test.go: 5 subtests for archive.org API
- download_test.go: 10 tests for download logic
- util_test.go: 7 tests for string/util helpers

Error paths covered: server errors, empty results, download failures,
extract failures, missing identifiers, ReadDir errors.

golangci-lint: 0 issues, go vet: clean
This commit is contained in:
2026-06-21 23:53:00 -07:00
parent 470fb9a4c4
commit 120993fb02
9 changed files with 2130 additions and 29 deletions
+17 -7
View File
@@ -55,11 +55,17 @@ var runAkaiutil = func(isoPath, commands string) (string, error) {
return "", fmt.Errorf("start akaiutil: %w", err)
}
stdin.Write([]byte(commands))
stdin.Close()
if _, err := stdin.Write([]byte(commands)); err != nil {
return "", fmt.Errorf("write stdin: %w", err)
}
if err := stdin.Close(); err != nil {
return "", fmt.Errorf("close stdin: %w", err)
}
output, _ := io.ReadAll(stdout)
cmd.Wait()
if err := cmd.Wait(); err != nil {
return "", fmt.Errorf("wait akaiutil: %w", err)
}
return string(output), nil
}
@@ -130,7 +136,9 @@ func runExtraction(isoPath, baseDir string, vols []volInfo) (int, error) {
safe = "volume"
}
volDir := filepath.Join(baseDir, safe)
os.MkdirAll(volDir, 0755)
if err := os.MkdirAll(volDir, 0755); err != nil {
return 0, fmt.Errorf("mkdir %s: %w", volDir, err)
}
nav := strings.ReplaceAll(v.Name, " ", "_")
fmt.Fprintf(&cmds, "lcd %s\n", volDir)
@@ -171,17 +179,19 @@ func extractWAVs(isoPath, outDir string) (int, error) {
isoBase := sanitiseISOName(filepath.Base(isoPath))
baseDir := filepath.Join(outDir, isoBase)
os.MkdirAll(baseDir, 0755)
if err := os.MkdirAll(baseDir, 0755); err != nil {
return 0, fmt.Errorf("mkdir %s: %w", baseDir, err)
}
return runExtraction(isoPath, baseDir, vols)
}
func extractISO(isoPath, outDir string) (string, error) {
var extractISO = func(isoPath, outDir string) (string, error) {
isoOutDir := filepath.Join(outDir, sanitiseISOName(filepath.Base(isoPath)))
if fi, err := os.Stat(isoOutDir); err == nil && fi.IsDir() {
var wavCount int
filepath.WalkDir(isoOutDir, func(p string, d os.DirEntry, err error) error {
_ = filepath.WalkDir(isoOutDir, func(p string, d os.DirEntry, err error) error {
if err == nil && !d.IsDir() && strings.HasSuffix(strings.ToLower(d.Name()), ".wav") {
wavCount++
}