|
- package control
-
- import (
- "bytes"
- "encoding/json"
- "net/http"
- "net/http/httptest"
- "testing"
-
- cfgpkg "github.com/jan/fm-rds-tx/internal/config"
- )
-
- func TestHealthz(t *testing.T) {
- srv := NewServer(cfgpkg.Default())
- req := httptest.NewRequest(http.MethodGet, "/healthz", nil)
- rec := httptest.NewRecorder()
- srv.Handler().ServeHTTP(rec, req)
- if rec.Code != http.StatusOK {
- t.Fatalf("unexpected status: %d", rec.Code)
- }
- }
-
- func TestStatus(t *testing.T) {
- srv := NewServer(cfgpkg.Default())
- req := httptest.NewRequest(http.MethodGet, "/status", nil)
- rec := httptest.NewRecorder()
- srv.Handler().ServeHTTP(rec, req)
- if rec.Code != http.StatusOK {
- t.Fatalf("unexpected status: %d", rec.Code)
- }
- var body map[string]any
- if err := json.Unmarshal(rec.Body.Bytes(), &body); err != nil {
- t.Fatalf("decode body: %v", err)
- }
- if body["service"] != "fm-rds-tx" {
- t.Fatalf("unexpected service: %v", body["service"])
- }
- }
-
- func TestDryRunEndpoint(t *testing.T) {
- srv := NewServer(cfgpkg.Default())
- req := httptest.NewRequest(http.MethodGet, "/dry-run", nil)
- rec := httptest.NewRecorder()
- srv.Handler().ServeHTTP(rec, req)
- if rec.Code != http.StatusOK {
- t.Fatalf("unexpected status: %d", rec.Code)
- }
- var body map[string]any
- if err := json.Unmarshal(rec.Body.Bytes(), &body); err != nil {
- t.Fatalf("decode body: %v", err)
- }
- if body["mode"] != "dry-run" {
- t.Fatalf("unexpected mode: %v", body["mode"])
- }
- }
-
- func TestConfigPatch(t *testing.T) {
- srv := NewServer(cfgpkg.Default())
- body := []byte(`{"toneLeftHz":900,"radioText":"hello world"}`)
- req := httptest.NewRequest(http.MethodPost, "/config", bytes.NewReader(body))
- rec := httptest.NewRecorder()
- srv.Handler().ServeHTTP(rec, req)
- if rec.Code != http.StatusOK {
- t.Fatalf("unexpected status: %d body=%s", rec.Code, rec.Body.String())
- }
-
- getReq := httptest.NewRequest(http.MethodGet, "/config", nil)
- getRec := httptest.NewRecorder()
- srv.Handler().ServeHTTP(getRec, getReq)
- if getRec.Code != http.StatusOK {
- t.Fatalf("unexpected status: %d", getRec.Code)
- }
- }
|