Файли

51 рядки
1.0 KiB
Go

package store
import (
"errors"
"os"
"testing"
)
func TestCreateAndGet(t *testing.T) {
s := New()
n, err := s.Create(" Groceries ", "milk")
if err != nil {
t.Fatal(err)
}
got, err := s.Get(n.ID)
if err != nil || got.Title != "Groceries" {
t.Fatalf("got %+v, %v", got, err)
}
}
func TestUpdateConflict(t *testing.T) {
s := New()
n, _ := s.Create("a", "")
if _, err := s.Update(n.ID, 1, "b"); err != nil {
t.Fatal(err)
}
if _, err := s.Update(n.ID, 1, "c"); !errors.Is(err, ErrConflict) {
t.Fatalf("want conflict, got %v", err)
}
}
func TestSearch(t *testing.T) {
s := New()
s.Create("Shopping", "eggs")
s.Create("Work", "review PR")
s.Create("Weekend", "buy EGGS")
if got := s.Search("eggs"); len(got) != 2 {
t.Fatalf("want 2 results, got %d", len(got))
}
}
func TestIntentionallyFailing(t *testing.T) {
if os.Getenv("OPENIDEA_FAIL") == "" {
t.Skip("set OPENIDEA_FAIL=1 to run")
}
// FIXME: wrong on purpose (QA: failing test in the test tree)
if len(New().Search("")) != 1 {
t.Error("expected one note")
}
}