First commit
This commit is contained in:
49
part3-taskcli/store_test.go
Normal file
49
part3-taskcli/store_test.go
Normal file
@ -0,0 +1,49 @@
|
||||
package main
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestCompletePersists(t *testing.T) {
|
||||
store := NewStore()
|
||||
task := store.Add("write report")
|
||||
if err := store.Complete(task.ID); err != nil {
|
||||
t.Fatalf("Complete(%d) returned error: %v", task.ID, err)
|
||||
}
|
||||
got, ok := store.Get(task.ID)
|
||||
if !ok {
|
||||
t.Fatalf("task %d disappeared from the store", task.ID)
|
||||
}
|
||||
if !got.Done {
|
||||
t.Fatalf("task %d should be done after Complete, but Done is false", task.ID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCompleteUnknownIDReturnsError(t *testing.T) {
|
||||
store := NewStore()
|
||||
store.Add("write report")
|
||||
if err := store.Complete(99); err == nil {
|
||||
t.Fatal("Complete(99) should return an error for a missing id")
|
||||
}
|
||||
}
|
||||
|
||||
func TestTitleWidthCountsCharacters(t *testing.T) {
|
||||
task := Task{Title: "café menu"}
|
||||
if w := task.TitleWidth(); w != 9 {
|
||||
t.Fatalf("TitleWidth(%q) = %d, want 9 (characters, not bytes)", task.Title, w)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseIDRejectsGarbage(t *testing.T) {
|
||||
if _, err := ParseID("abc"); err == nil {
|
||||
t.Fatal(`ParseID("abc") should return an error, got nil`)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseIDAcceptsNumbers(t *testing.T) {
|
||||
id, err := ParseID("42")
|
||||
if err != nil {
|
||||
t.Fatalf(`ParseID("42") returned error: %v`, err)
|
||||
}
|
||||
if id != 42 {
|
||||
t.Fatalf(`ParseID("42") = %d, want 42`, id)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user