github.com/qri-io/qri@v0.10.1-0.20220104210721-c771715036cb/registry/regclient/profile_test.go (about)

     1  package regclient
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/qri-io/qri/auth/key"
     7  	"github.com/qri-io/qri/registry"
     8  )
     9  
    10  func TestProfileRequests(t *testing.T) {
    11  	tr, cleanup := NewTestRunner(t)
    12  	defer cleanup()
    13  
    14  	client := tr.Client
    15  	input := &registry.Profile{
    16  		Username: "b5",
    17  	}
    18  
    19  	pubKeyStr, err := key.EncodePubKeyB64(tr.ClientPrivKey.GetPublic())
    20  	if err != nil {
    21  		t.Error(err.Error())
    22  	}
    23  
    24  	p := &registry.Profile{
    25  		PublicKey: pubKeyStr,
    26  	}
    27  
    28  	err = client.GetProfile(p)
    29  	if err == nil {
    30  		t.Errorf("expected empty get to error")
    31  	} else if err.Error() != "registry: " {
    32  		t.Errorf("error mistmatch. expected: %s, got: %s", "error 404: ", err.Error())
    33  	}
    34  
    35  	_, err = client.PutProfile(input, tr.ClientPrivKey)
    36  	if err != nil {
    37  		t.Error(err.Error())
    38  	}
    39  
    40  	err = client.GetProfile(p)
    41  	if err != nil {
    42  		t.Error(err)
    43  	}
    44  	if p.Username != input.Username {
    45  		t.Errorf("expected username to equal %s, got: %s", input.Username, p.Username)
    46  	}
    47  
    48  	err = client.DeleteProfile(input, tr.ClientPrivKey)
    49  	if err != nil {
    50  		t.Error(err.Error())
    51  	}
    52  }
    53  
    54  func TestRegistryProfileIDGenerator(t *testing.T) {
    55  	gen := key.NewCryptoGenerator()
    56  	pks, pid := gen.GeneratePrivateKeyAndPeerID()
    57  	pk, err := key.DecodeB64PrivKey(pks)
    58  	if err != nil {
    59  		t.Fatal(err)
    60  	}
    61  	pro, err := registry.ProfileFromPrivateKey(&registry.Profile{Username: "test_user"}, pk)
    62  	if err != nil {
    63  		t.Error(err.Error())
    64  	}
    65  	if pid != pro.ProfileID {
    66  		t.Errorf("expected profile IDs to be equal %s, got: %s", pid, pro.ProfileID)
    67  	}
    68  }