apps/jotts/db_test.go 1.7 K raw
1
package main
2
3
import "testing"
4
5
func TestNoteCRUDAndOrdering(t *testing.T) {
6
	db, err := openDB("file:jotts-test?mode=memory&cache=shared")
7
	if err != nil {
8
		t.Fatal(err)
9
	}
10
	defer db.Close()
11
12
	first, err := createNote(db, "first", "one")
13
	if err != nil {
14
		t.Fatal(err)
15
	}
16
	if first.ShortID == "" {
17
		t.Fatal("expected short id")
18
	}
19
	second, err := createNote(db, "second", "two")
20
	if err != nil {
21
		t.Fatal(err)
22
	}
23
24
	got, err := getNoteByShortID(db, first.ShortID)
25
	if err != nil {
26
		t.Fatal(err)
27
	}
28
	if got == nil || got.Title != "first" || got.Content != "one" {
29
		t.Fatalf("unexpected note: %#v", got)
30
	}
31
32
	missing, err := getNoteByShortID(db, "missing")
33
	if err != nil {
34
		t.Fatal(err)
35
	}
36
	if missing != nil {
37
		t.Fatalf("expected nil missing note, got %#v", missing)
38
	}
39
40
	all, err := listNotes(db)
41
	if err != nil {
42
		t.Fatal(err)
43
	}
44
	if len(all) != 2 || all[0].ShortID != second.ShortID || all[1].ShortID != first.ShortID {
45
		t.Fatalf("not newest first: %#v", all)
46
	}
47
48
	updated, err := updateNoteByShortID(db, first.ShortID, "updated", "changed")
49
	if err != nil {
50
		t.Fatal(err)
51
	}
52
	if updated == nil || updated.Title != "updated" || updated.Content != "changed" {
53
		t.Fatalf("unexpected update: %#v", updated)
54
	}
55
	updated, err = updateNoteByShortID(db, "missing", "x", "y")
56
	if err != nil {
57
		t.Fatal(err)
58
	}
59
	if updated != nil {
60
		t.Fatalf("expected nil updating missing, got %#v", updated)
61
	}
62
63
	deleted, err := deleteNoteByShortID(db, first.ShortID)
64
	if err != nil {
65
		t.Fatal(err)
66
	}
67
	if !deleted {
68
		t.Fatal("expected delete to report true")
69
	}
70
	deleted, err = deleteNoteByShortID(db, "missing")
71
	if err != nil {
72
		t.Fatal(err)
73
	}
74
	if deleted {
75
		t.Fatal("expected missing delete false")
76
	}
77
}