package ajax import ( "encoding/json" "local/todo-server/server/ajax/task" "net/http" "net/http/httptest" "testing" ) func TestAjaxLoadTasks(t *testing.T) { a := mockAjax() func() { w := httptest.NewRecorder() r := httptest.NewRequest("GET", "/", nil) a.loadTasks(w, r) var result struct { List []string `json:"list"` } if v := w.Code; v != http.StatusOK { t.Error(v) } else if err := json.NewDecoder(w.Body).Decode(&result); err != nil { t.Error(err) } else if len(result.List) != 0 { t.Error(result) } }() a.storageSetTask("list", "task", &task.Task{Title: "hi"}) func() { w := httptest.NewRecorder() r := httptest.NewRequest("GET", "/", nil) a.loadTasks(w, r) var result struct { List []task.Task `json:"list"` } if v := w.Code; v != http.StatusOK { t.Error(v) } else if err := json.NewDecoder(w.Body).Decode(&result); err != nil { t.Error(err) } else if len(result.List) != 1 { t.Error(result) } }() }