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) } }