Monorepo for Tangled
tangled.org
1package knotserver
2
3import (
4 "context"
5 "path/filepath"
6 "testing"
7
8 "tangled.org/core/knotserver/db"
9)
10
11func newTestKnotDB(t *testing.T) *db.DB {
12 t.Helper()
13 path := filepath.Join(t.TempDir(), "test.db")
14 d, err := db.Setup(context.Background(), path)
15 if err != nil {
16 t.Fatalf("db.Setup: %v", err)
17 }
18 return d
19}
20
21func TestAliasResolvesOriginalName(t *testing.T) {
22 d := newTestKnotDB(t)
23 if err := d.StoreRepoKey("did:plc:repo1", []byte("dummy"), "did:plc:akshay", "foo"); err != nil {
24 t.Fatalf("StoreRepoKey: %v", err)
25 }
26 got, err := d.GetRepoDid("did:plc:akshay", "foo")
27 if err != nil {
28 t.Fatalf("GetRepoDid: %v", err)
29 }
30 if got != "did:plc:repo1" {
31 t.Errorf("repoDid = %q, want did:plc:repo1", got)
32 }
33}
34
35func TestAliasUpsertRespectsRevOrdering(t *testing.T) {
36 d := newTestKnotDB(t)
37 if err := d.StoreRepoKey("did:plc:repo1", []byte("dummy"), "did:plc:akshay", "foo"); err != nil {
38 t.Fatalf("StoreRepoKey: %v", err)
39 }
40 if err := d.UpsertRepoAlias(db.RepoAlias{
41 OwnerDid: "did:plc:akshay",
42 Rkey: "bar",
43 RepoDid: "did:plc:repo1",
44 Rev: "3laaaaaaaaaab",
45 }); err != nil {
46 t.Fatalf("UpsertRepoAlias bar: %v", err)
47 }
48
49 _, current, err := d.CurrentRkey("did:plc:repo1")
50 if err != nil {
51 t.Fatalf("CurrentRkey: %v", err)
52 }
53 if current != "bar" {
54 t.Errorf("current rkey = %q, want bar", current)
55 }
56
57 fooDid, err := d.GetRepoDid("did:plc:akshay", "foo")
58 if err != nil || fooDid != "did:plc:repo1" {
59 t.Errorf("old rkey lookup: got (%q, %v), want did:plc:repo1", fooDid, err)
60 }
61 barDid, err := d.GetRepoDid("did:plc:akshay", "bar")
62 if err != nil || barDid != "did:plc:repo1" {
63 t.Errorf("new rkey lookup: got (%q, %v), want did:plc:repo1", barDid, err)
64 }
65}