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  }