-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinspect_test.go
More file actions
83 lines (77 loc) · 2.2 KB
/
Copy pathinspect_test.go
File metadata and controls
83 lines (77 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package main
import (
"bytes"
"context"
"crypto/sha256"
"encoding/hex"
"path/filepath"
"strings"
"testing"
)
func TestInspectSummaryAndUser(t *testing.T) {
dbPath := filepath.Join(t.TempDir(), "ksync-inspect.db")
store, err := OpenStore(dbPath)
if err != nil {
t.Fatal(err)
}
publicKey := bytes.Repeat([]byte{0x42}, mlDSA44PublicKeySize)
sum := sha256.Sum256(publicKey)
userID := hex.EncodeToString(sum[:])
_, err = store.ApplySync(context.Background(), SyncRequest{
UserIDHash: userID,
Habits: []Habit{{
ID: "habit-1",
Name: "Meditate",
SyncMode: 1,
SyncActivity: 2,
UpdatedAt: "2026-06-19T00:00:00Z",
}},
Sessions: []Session{{
ID: "session-1",
StartedAt: "2026-06-19T00:00:00Z",
LocalDate: 20260619,
Topic: "0",
Activity: 1,
UpdatedAt: "2026-06-19T00:00:00Z",
}},
}, publicKey)
if err != nil {
t.Fatal(err)
}
if err := store.Close(); err != nil {
t.Fatal(err)
}
var summary bytes.Buffer
if err := runInspect(context.Background(), []string{"--db", dbPath, "summary"}, InspectOptions{Out: &summary}); err != nil {
t.Fatal(err)
}
if !strings.Contains(summary.String(), "server_users") || !strings.Contains(summary.String(), "server_sessions") {
t.Fatalf("summary missing counts:\n%s", summary.String())
}
var user bytes.Buffer
if err := runInspect(context.Background(), []string{"--db", dbPath, "user", userID}, InspectOptions{Out: &user}); err != nil {
t.Fatal(err)
}
got := user.String()
if !strings.Contains(got, "Meditate") || !strings.Contains(got, "session-1") {
t.Fatalf("user output missing data:\n%s", got)
}
if strings.Contains(got, userID) {
t.Fatalf("user id should be redacted by default:\n%s", got)
}
}
func TestInspectMissingUser(t *testing.T) {
dbPath := filepath.Join(t.TempDir(), "ksync-inspect.db")
store, err := OpenStore(dbPath)
if err != nil {
t.Fatal(err)
}
if err := store.Close(); err != nil {
t.Fatal(err)
}
userID := strings.Repeat("a", 64)
err = runInspect(context.Background(), []string{"--db", dbPath, "user", userID}, InspectOptions{Out: &bytes.Buffer{}})
if err == nil || !strings.Contains(err.Error(), "user not found") {
t.Fatalf("missing user error = %v", err)
}
}