Files
nmon/internal/api/errors_test.go
jleung 02dce40e2a
Some checks failed
ci / test (ubuntu-24.04-arm) (push) Has been cancelled
ci / test (ubuntu-latest) (push) Has been cancelled
ci / postgres (push) Has been cancelled
ci / openapi (push) Has been cancelled
M1 WP5: seed discovery, poller, API, serve wiring, gate script; M1 gate passed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:58:26 +00:00

30 lines
693 B
Go

package api
import (
"fmt"
"testing"
"github.com/danielgtaylor/huma/v2"
"github.com/v10networks/nmon/internal/store"
)
func TestStoreErrorMapping(t *testing.T) {
s := &server{}
s.Logger = nil
for _, tc := range []struct {
err error
status int
detail string
}{
{fmt.Errorf("%w: slug taken", store.ErrConflict), 409, "slug taken"},
{fmt.Errorf("%w: bad kind", store.ErrInvalid), 422, "bad kind"},
{fmt.Errorf("wrapped: %w", store.ErrNotFound), 404, "not found"},
} {
se, ok := s.storeErr(tc.err).(huma.StatusError)
if !ok || se.GetStatus() != tc.status || se.Error() != tc.detail {
t.Errorf("%v: got %v, want %d %q", tc.err, se, tc.status, tc.detail)
}
}
}