go-netops/CLAUDE.md
Snider 38819660ef
All checks were successful
Security Scan / security (pull_request) Successful in 7s
Test / test (pull_request) Successful in 1m38s
fix(unifi): DX audit — fix tests, add missing Commit(), improve coverage
- Fix SaveConfig: add cfg.Commit() so credentials actually persist to disk
- Fix TestResolveConfig and TestNewFromConfig: isolate from real config
  file by setting HOME to temp dir, preventing env/config bleed
- Add RouteTypeName, GetRoutes, and GetNetworks unit tests with httptest
  mocks (coverage 39% → 55%)
- Update CLAUDE.md: add error handling and test isolation conventions
- Update docs: fix Go version (1.25 → 1.26), remove stale replace
  directive references, add cmd/unifi/ to architecture diagram

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 08:44:07 +00:00

29 lines
994 B
Markdown

# CLAUDE.md
UniFi network controller API client for querying devices, clients, networks, routes, and sites.
Module: `forge.lthn.ai/core/go-netops`
## Commands
```bash
go test ./... # run all tests
go test -race ./... # race detector (required before commit)
go test -v -run Name ./... # single test
go vet ./... # vet check
```
## Standards
- UK English
- `go test -race ./...` and `go vet ./...` must pass before commit
- Conventional commits: `type(scope): description`
- Co-Author: `Co-Authored-By: Virgil <virgil@lethean.io>`
- Errors must use `log.E()` from `go-log`, never `fmt.Errorf`
- Config tests must isolate from real `~/.core/config.yaml` via `t.Setenv("HOME", t.TempDir())`
## Docs
- `docs/architecture.md` — package structure, key types, design decisions, API patterns
- `docs/development.md` — prerequisites, build/test, test patterns, coding standards
- `docs/history.md` — extraction origin, known limitations, future plans