github.com/qri-io/qri@v0.10.1-0.20220104210721-c771715036cb/dsref/spec/resolve_test.go (about) 1 package spec 2 3 import ( 4 "testing" 5 6 "github.com/qri-io/qri/dsref" 7 ) 8 9 func TestResolverConsistency(t *testing.T) { 10 a, b := dsref.NewMemResolver("a"), dsref.NewMemResolver("b") 11 ref := dsref.Ref{ 12 InitID: "a_thing_that_does_not_change", 13 Username: "a", 14 Name: "example_dataset", 15 Path: "/ipfs/QmExample", 16 } 17 18 toResolve := dsref.Ref{ 19 Username: "a", 20 Name: "example_dataset", 21 } 22 23 if err := ConsistentResolvers(t, toResolve, a, b); err != nil { 24 t.Error(err) 25 } 26 27 a.Put(dsref.VersionInfo{ 28 InitID: ref.InitID, 29 Username: ref.Username, 30 Name: ref.Name, 31 Path: ref.Path, 32 }) 33 34 if err := InconsistentResolvers(t, toResolve, a, b); err != nil { 35 t.Error(err) 36 } 37 38 b.Put(dsref.VersionInfo{ 39 InitID: ref.InitID, 40 Username: ref.Username, 41 Name: ref.Name, 42 Path: ref.Path, 43 }) 44 45 if err := ConsistentResolvers(t, toResolve, a, b); err != nil { 46 t.Error(err) 47 } 48 49 if err := InconsistentResolvers(t, toResolve, a, b); err == nil { 50 t.Error("expected error, got nil") 51 } 52 53 c := dsref.NewMemResolver("c") 54 if err := InconsistentResolvers(t, toResolve, b, c); err != nil { 55 t.Error(err) 56 } 57 58 c.Put(dsref.VersionInfo{ 59 InitID: "incorrect_id", 60 Username: "a", 61 Name: "example_dataset", 62 Path: "/ipfs/QmBadExample", 63 }) 64 65 if err := InconsistentResolvers(t, toResolve, b, c); err != nil { 66 t.Error(err) 67 } 68 if err := InconsistentResolvers(t, toResolve, a, c); err != nil { 69 t.Error(err) 70 } 71 }