From ade401d9e6756d7fae2b7c0a3d7777e9a775e441 Mon Sep 17 00:00:00 2001 From: Robert Rapp Date: Fri, 20 Feb 2026 16:40:07 +0100 Subject: [PATCH] test: cover lookup handler --- main_test.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 main_test.go diff --git a/main_test.go b/main_test.go new file mode 100644 index 0000000..aec86c6 --- /dev/null +++ b/main_test.go @@ -0,0 +1,46 @@ +package main + +import ( + "net/http" + "net/http/httptest" + "strings" + "sync/atomic" + "testing" +) + +func TestLookupMissingDomain(t *testing.T) { + s := &server{ + nrenASNs: make(map[uint]struct{}), + } + s.ready.Store(true) + + req := httptest.NewRequest(http.MethodGet, "/lookup", nil) + rr := httptest.NewRecorder() + + s.lookupHandler(rr, req) + + if rr.Code != http.StatusBadRequest { + t.Fatalf("expected 400, got %d", rr.Code) + } + + if !strings.Contains(rr.Body.String(), "missing domain") { + t.Fatalf("expected error message in response") + } +} + +func TestLookupServiceNotReady(t *testing.T) { + s := &server{ + nrenASNs: make(map[uint]struct{}), + } + s.ready = atomic.Bool{} + s.ready.Store(false) + + req := httptest.NewRequest(http.MethodGet, "/lookup?domain=example.com", nil) + rr := httptest.NewRecorder() + + s.lookupHandler(rr, req) + + if rr.Code != http.StatusServiceUnavailable { + t.Fatalf("expected 503, got %d", rr.Code) + } +}