Unittest tasks
parent
8c4bc81694
commit
ee77d9d3b7
|
|
@ -67,7 +67,9 @@ func (a *Ajax) HandleAjax(w http.ResponseWriter, r *http.Request) {
|
||||||
} else if v := params.Get("setHideList"); v != "" {
|
} else if v := params.Get("setHideList"); v != "" {
|
||||||
foo = a.setHideList
|
foo = a.setHideList
|
||||||
}
|
}
|
||||||
if err := foo(w, r); err != nil {
|
if err := foo(w, r); err == storage.ErrNotFound {
|
||||||
|
http.Error(w, err.Error(), http.StatusNotFound)
|
||||||
|
} else if err != nil {
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,11 @@ func (a *Ajax) storageGetTask(listID, taskID string) (*task.Task, error) {
|
||||||
return &task, err
|
return &task, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Ajax) storageSetTask(listID, taskID string, task *task.Task) error {
|
func (a *Ajax) storageSetTask(listID, taskID string, newTask *task.Task) error {
|
||||||
return a.storageSet(path.Join(listID, taskID), *task)
|
if newTask == nil {
|
||||||
|
newTask = &task.Task{}
|
||||||
|
}
|
||||||
|
return a.storageSet(path.Join(listID, taskID), *newTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Ajax) storageDelTask(listID, taskID string) error {
|
func (a *Ajax) storageDelTask(listID, taskID string) error {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package ajax
|
||||||
|
|
||||||
|
import (
|
||||||
|
"local/todo-server/server/ajax/task"
|
||||||
|
"net/http/httptest"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestAjaxStorageCur(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
r := httptest.NewRequest("POST", "/?id=abc", nil)
|
||||||
|
listID, taskID, tags := ajax.Cur(r)
|
||||||
|
if listID != "list" {
|
||||||
|
t.Error(listID)
|
||||||
|
}
|
||||||
|
if taskID != "abc" {
|
||||||
|
t.Error(taskID)
|
||||||
|
}
|
||||||
|
if len(tags) != 0 {
|
||||||
|
t.Error(tags)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAjaxStorageListTasks(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
ajax.storageSetTask("a", "b", &task.Task{Title: "x"})
|
||||||
|
ajax.storageSetTask("a", "c", &task.Task{Title: "y"})
|
||||||
|
ajax.storageSetTask("a", "d", &task.Task{Title: "z"})
|
||||||
|
filter := func(task *task.Task) bool {
|
||||||
|
return task.Title == "x" || task.Title == "y"
|
||||||
|
}
|
||||||
|
|
||||||
|
if results, err := ajax.storageListTasks("a"); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
} else if len(results) != 3 {
|
||||||
|
t.Error(results)
|
||||||
|
}
|
||||||
|
|
||||||
|
if results, err := ajax.storageListTasks("a", filter); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
} else if len(results) != 2 {
|
||||||
|
t.Error(results)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAjaxStorageGetSetDelTask(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
if _, err := ajax.storageGetTask("a", "b"); err == nil {
|
||||||
|
t.Error(err)
|
||||||
|
} else if err := ajax.storageSetTask("a", "b", &task.Task{Title: "c"}); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
} else if task, err := ajax.storageGetTask("a", "b"); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
} else if task.Title != "c" {
|
||||||
|
t.Error(err)
|
||||||
|
} else if err := ajax.storageDelTask("a", "b"); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
} else if _, err := ajax.storageGetTask("a", "b"); err == nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -119,7 +119,7 @@ func (a *Ajax) moveTask(w http.ResponseWriter, r *http.Request) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
a.storageSetTask(listID, taskID, nil)
|
a.storageDelTask(listID, taskID)
|
||||||
return a.storageSetTask(toList, taskID, task)
|
return a.storageSetTask(toList, taskID, task)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"local/todo-server/server/ajax/task"
|
"local/todo-server/server/ajax/task"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -45,3 +46,132 @@ func TestAjaxLoadTasks(t *testing.T) {
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAjaxNewTask(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
w := httptest.NewRecorder()
|
||||||
|
r := httptest.NewRequest("GET", "/", strings.NewReader(`{
|
||||||
|
"title":"a"
|
||||||
|
}`))
|
||||||
|
ajax.newTask(w, r)
|
||||||
|
if v := w.Code; v != http.StatusOK {
|
||||||
|
t.Error(v)
|
||||||
|
}
|
||||||
|
results, err := ajax.storageListTasks("list")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if len(results) != 1 {
|
||||||
|
t.Error(results)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAjaxMakeTask(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
r := httptest.NewRequest("GET", "/", strings.NewReader(`{
|
||||||
|
"title":"a"
|
||||||
|
}`))
|
||||||
|
listID, task, err := ajax.makeTask(r)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if listID != "list" {
|
||||||
|
t.Error(listID)
|
||||||
|
}
|
||||||
|
if task.Title != "a" {
|
||||||
|
t.Error(task)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAjaxDeleteTask(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
ajax.storageSetTask("list", "b", &task.Task{Title: "c"})
|
||||||
|
w := httptest.NewRecorder()
|
||||||
|
r := httptest.NewRequest("GET", "/?id=b", nil)
|
||||||
|
ajax.deleteTask(w, r)
|
||||||
|
if v := w.Code; v != http.StatusOK {
|
||||||
|
t.Error(v)
|
||||||
|
}
|
||||||
|
results, err := ajax.storageListTasks("list")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if len(results) != 0 {
|
||||||
|
t.Error(results)
|
||||||
|
}
|
||||||
|
if _, err := ajax.storageGetTask("list", "b"); err == nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAjaxCompleteTask(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
ajax.storageSetTask("list", "b", &task.Task{Title: "c"})
|
||||||
|
for _, state := range []string{"1", "0"} {
|
||||||
|
w := httptest.NewRecorder()
|
||||||
|
r := httptest.NewRequest("GET", "/?id=b&compl="+state, nil)
|
||||||
|
ajax.completeTask(w, r)
|
||||||
|
if v := w.Code; v != http.StatusOK {
|
||||||
|
t.Error(v)
|
||||||
|
}
|
||||||
|
if task, err := ajax.storageGetTask("list", "b"); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
} else if task.Complete != (state == "1") {
|
||||||
|
t.Error(task)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAjaxEditNote(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
ajax.storageSetTask("list", "b", &task.Task{Title: "c", Note: []string{"hi", "mom"}})
|
||||||
|
w := httptest.NewRecorder()
|
||||||
|
r := httptest.NewRequest("POST", "/?id=b&compl=0", strings.NewReader(`{
|
||||||
|
"note":"hello world i like tacos"
|
||||||
|
}`))
|
||||||
|
ajax.editNote(w, r)
|
||||||
|
if v := w.Code; v != http.StatusOK {
|
||||||
|
t.Error(v)
|
||||||
|
}
|
||||||
|
if task, err := ajax.storageGetTask("list", "b"); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
} else if len(task.Note) != 1 {
|
||||||
|
t.Error(task.Note)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAjaxEditTask(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
ajax.storageSetTask("list", "b", &task.Task{Title: "c", Note: []string{"hi"}})
|
||||||
|
w := httptest.NewRecorder()
|
||||||
|
r := httptest.NewRequest("POST", "/?id=b&compl=0", strings.NewReader(`{
|
||||||
|
"title": "newtitle",
|
||||||
|
"note":"hello world i like tacos"
|
||||||
|
}`))
|
||||||
|
ajax.editTask(w, r)
|
||||||
|
if v := w.Code; v != http.StatusOK {
|
||||||
|
t.Error(v)
|
||||||
|
}
|
||||||
|
if task, err := ajax.storageGetTask("list", "b"); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
} else if task.Title != "newtitle" {
|
||||||
|
t.Error(task)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAjaxMoveTask(t *testing.T) {
|
||||||
|
ajax := mockAjax()
|
||||||
|
ajax.storageSetTask("list", "b", &task.Task{Title: "c"})
|
||||||
|
w := httptest.NewRecorder()
|
||||||
|
r := httptest.NewRequest("GET", "/?id=b&to=listB", strings.NewReader(`{}`))
|
||||||
|
ajax.moveTask(w, r)
|
||||||
|
if v := w.Code; v != http.StatusOK {
|
||||||
|
t.Error(v)
|
||||||
|
}
|
||||||
|
if task, err := ajax.storageGetTask("list", "b"); err == nil {
|
||||||
|
t.Error(err, task)
|
||||||
|
}
|
||||||
|
if task, err := ajax.storageGetTask("listB", "b"); err != nil {
|
||||||
|
t.Error(err, task)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue