75 lines
2.2 KiB
Go
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)
|
|
}
|
|
}
|