Unittesting begins
This commit is contained in:
59
server/ajax/task/task_test.go
Normal file
59
server/ajax/task/task_test.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNew(t *testing.T) {
|
||||
if _, err := New(toReq(map[string]interface{}{})); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err := New(toReq(map[string]interface{}{"title": ""})); err == nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if task, err := New(toReq(map[string]interface{}{"title": "i want dogs /a,b,c/"})); err != nil {
|
||||
t.Error(err)
|
||||
} else if task.Title != "i want dogs" {
|
||||
t.Error(task.Title)
|
||||
} else if fmt.Sprint(task.Tags) != "[a b c]" {
|
||||
t.Error(task.Tags)
|
||||
} else {
|
||||
was := task.Edited
|
||||
task.touch()
|
||||
if was == task.Edited {
|
||||
t.Error(was)
|
||||
}
|
||||
was = task.Edited
|
||||
task.SetNote("hell\nno")
|
||||
if was == task.Edited {
|
||||
t.Error(was)
|
||||
} else if len(task.Note) != 2 {
|
||||
t.Error(task.Note)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func toReq(m map[string]interface{}) *http.Request {
|
||||
if m == nil {
|
||||
m = map[string]interface{}{}
|
||||
}
|
||||
els := map[string]interface{}{
|
||||
"title": "title",
|
||||
"prio": 1,
|
||||
"tags": "a, b,c",
|
||||
"duedate": "2010-02-03 05:06:07",
|
||||
"note": "hello\nworld\ni\nam a note\nand\ni have\nlots\nof\nlines",
|
||||
}
|
||||
for k := range els {
|
||||
if _, ok := m[k]; !ok {
|
||||
m[k] = els[k]
|
||||
}
|
||||
}
|
||||
b, _ := json.Marshal(m)
|
||||
return httptest.NewRequest("POST", "/paht", bytes.NewReader(b))
|
||||
}
|
||||
Reference in New Issue
Block a user