apps/sipp/internal/store/store_test.go 1.6 K raw
1
package store
2
3
import "testing"
4
5
func TestSnippetCRUDAndOrdering(t *testing.T) {
6
	db, err := Open("file:sipp-store-test?mode=memory&cache=shared")
7
	if err != nil {
8
		t.Fatal(err)
9
	}
10
	defer db.Close()
11
12
	first, err := Create(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 := Create(db, "second", "two")
20
	if err != nil {
21
		t.Fatal(err)
22
	}
23
24
	got, err := GetByShortID(db, first.ShortID)
25
	if err != nil {
26
		t.Fatal(err)
27
	}
28
	if got == nil || got.Name != "first" || got.Content != "one" {
29
		t.Fatalf("unexpected snippet: %#v", got)
30
	}
31
	missing, err := GetByShortID(db, "missing")
32
	if err != nil {
33
		t.Fatal(err)
34
	}
35
	if missing != nil {
36
		t.Fatalf("expected nil missing snippet, got %#v", missing)
37
	}
38
39
	all, err := List(db)
40
	if err != nil {
41
		t.Fatal(err)
42
	}
43
	if len(all) != 2 || all[0].ShortID != second.ShortID || all[1].ShortID != first.ShortID {
44
		t.Fatalf("not newest first: %#v", all)
45
	}
46
47
	updated, err := UpdateByShortID(db, first.ShortID, "updated", "changed")
48
	if err != nil {
49
		t.Fatal(err)
50
	}
51
	if updated == nil || updated.Name != "updated" || updated.Content != "changed" {
52
		t.Fatalf("unexpected update: %#v", updated)
53
	}
54
	updated, err = UpdateByShortID(db, "missing", "x", "y")
55
	if err != nil {
56
		t.Fatal(err)
57
	}
58
	if updated != nil {
59
		t.Fatalf("expected nil updating missing, got %#v", updated)
60
	}
61
62
	deleted, err := DeleteByShortID(db, first.ShortID)
63
	if err != nil {
64
		t.Fatal(err)
65
	}
66
	if !deleted {
67
		t.Fatal("expected delete true")
68
	}
69
	deleted, err = DeleteByShortID(db, "missing")
70
	if err != nil {
71
		t.Fatal(err)
72
	}
73
	if deleted {
74
		t.Fatal("expected missing delete false")
75
	}
76
}