181 lines
5.1 KiB
Go
181 lines
5.1 KiB
Go
package handler
|
|
|
|
import (
|
|
"bytes"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestHabitHandler_Create_InvalidBody(t *testing.T) {
|
|
req := httptest.NewRequest("POST", "/habits", bytes.NewBufferString("not json"))
|
|
rr := httptest.NewRecorder()
|
|
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Create(rr, req)
|
|
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Create_EmptyName(t *testing.T) {
|
|
body := `{"name":""}`
|
|
req := httptest.NewRequest("POST", "/habits", bytes.NewBufferString(body))
|
|
rr := httptest.NewRecorder()
|
|
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Create(rr, req)
|
|
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Get_NoChiParam(t *testing.T) {
|
|
req := httptest.NewRequest("GET", "/habits/1", nil)
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Get(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Get_InvalidID(t *testing.T) {
|
|
req := httptest.NewRequest("GET", "/habits/abc", nil)
|
|
req = withChiParam(req, "id", "abc")
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Get(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Update_NoChiParam(t *testing.T) {
|
|
req := httptest.NewRequest("PUT", "/habits/1", bytes.NewBufferString("{}"))
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Update(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Update_InvalidBody(t *testing.T) {
|
|
req := httptest.NewRequest("PUT", "/habits/1", bytes.NewBufferString("bad json"))
|
|
req = withChiParam(req, "id", "1")
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Update(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Delete_NoChiParam(t *testing.T) {
|
|
req := httptest.NewRequest("DELETE", "/habits/1", nil)
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Delete(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Delete_InvalidID(t *testing.T) {
|
|
req := httptest.NewRequest("DELETE", "/habits/abc", nil)
|
|
req = withChiParam(req, "id", "abc")
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Delete(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Log_NoChiParam(t *testing.T) {
|
|
req := httptest.NewRequest("POST", "/habits/1/log", bytes.NewBufferString("{}"))
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Log(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_Log_InvalidID(t *testing.T) {
|
|
req := httptest.NewRequest("POST", "/habits/abc/log", bytes.NewBufferString("{}"))
|
|
req = withChiParam(req, "id", "abc")
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.Log(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_GetLogs_NoChiParam(t *testing.T) {
|
|
req := httptest.NewRequest("GET", "/habits/1/logs", nil)
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.GetLogs(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_GetLogs_InvalidID(t *testing.T) {
|
|
req := httptest.NewRequest("GET", "/habits/abc/logs", nil)
|
|
req = withChiParam(req, "id", "abc")
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.GetLogs(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_DeleteLog_NoChiParam(t *testing.T) {
|
|
req := httptest.NewRequest("DELETE", "/habits/logs/1", nil)
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.DeleteLog(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_DeleteLog_InvalidID(t *testing.T) {
|
|
req := httptest.NewRequest("DELETE", "/habits/logs/abc", nil)
|
|
req = withChiParam(req, "logId", "abc")
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.DeleteLog(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_HabitStats_NoChiParam(t *testing.T) {
|
|
req := httptest.NewRequest("GET", "/habits/1/stats", nil)
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.HabitStats(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|
|
|
|
func TestHabitHandler_HabitStats_InvalidID(t *testing.T) {
|
|
req := httptest.NewRequest("GET", "/habits/abc/stats", nil)
|
|
req = withChiParam(req, "id", "abc")
|
|
rr := httptest.NewRecorder()
|
|
h := &HabitHandler{habitService: nil}
|
|
h.HabitStats(rr, req)
|
|
if rr.Code != http.StatusBadRequest {
|
|
t.Errorf("expected 400, got %d", rr.Code)
|
|
}
|
|
}
|