Files
pulse-api/internal/handler/habit_freeze_test.go
Cosmo f3cdad1b80
Some checks failed
CI / lint-test (push) Failing after 1s
test: expand handler tests to 53.4% coverage
2026-03-26 19:21:30 +00:00

75 lines
2.2 KiB
Go

package handler
import (
"bytes"
"net/http"
"net/http/httptest"
"testing"
)
func TestHabitFreezeHandler_Create_InvalidBody(t *testing.T) {
req := httptest.NewRequest("POST", "/habits/1/freeze", bytes.NewBufferString("bad"))
rr := httptest.NewRecorder()
h := &HabitFreezeHandler{freezeRepo: nil, habitRepo: nil}
h.Create(rr, req)
// No chi URL param → bad request
if rr.Code != http.StatusBadRequest {
t.Errorf("expected 400, got %d", rr.Code)
}
}
func TestHabitFreezeHandler_Create_InvalidID(t *testing.T) {
req := httptest.NewRequest("POST", "/habits/abc/freeze", bytes.NewBufferString("{}"))
req = withChiParam(req, "id", "abc")
rr := httptest.NewRecorder()
h := &HabitFreezeHandler{freezeRepo: nil, habitRepo: nil}
h.Create(rr, req)
if rr.Code != http.StatusBadRequest {
t.Errorf("expected 400, got %d", rr.Code)
}
}
func TestHabitFreezeHandler_List_NoChiParam(t *testing.T) {
req := httptest.NewRequest("GET", "/habits/1/freeze", nil)
rr := httptest.NewRecorder()
h := &HabitFreezeHandler{freezeRepo: nil, habitRepo: nil}
h.List(rr, req)
if rr.Code != http.StatusBadRequest {
t.Errorf("expected 400, got %d", rr.Code)
}
}
func TestHabitFreezeHandler_List_InvalidID(t *testing.T) {
req := httptest.NewRequest("GET", "/habits/abc/freeze", nil)
req = withChiParam(req, "id", "abc")
rr := httptest.NewRecorder()
h := &HabitFreezeHandler{freezeRepo: nil, habitRepo: nil}
h.List(rr, req)
if rr.Code != http.StatusBadRequest {
t.Errorf("expected 400, got %d", rr.Code)
}
}
func TestHabitFreezeHandler_Delete_NoChiParam(t *testing.T) {
req := httptest.NewRequest("DELETE", "/habits/freeze/1", nil)
rr := httptest.NewRecorder()
h := &HabitFreezeHandler{freezeRepo: nil, habitRepo: nil}
h.Delete(rr, req)
if rr.Code != http.StatusBadRequest {
t.Errorf("expected 400, got %d", rr.Code)
}
}
func TestHabitFreezeHandler_Delete_InvalidID(t *testing.T) {
req := httptest.NewRequest("DELETE", "/habits/freeze/abc", nil)
req = withChiParam(req, "freezeId", "abc")
rr := httptest.NewRecorder()
h := &HabitFreezeHandler{freezeRepo: nil, habitRepo: nil}
h.Delete(rr, req)
if rr.Code != http.StatusBadRequest {
t.Errorf("expected 400, got %d", rr.Code)
}
}