github.com/annwntech/go-micro/v2@v2.9.5/auth/token/basic/basic_test.go (about)

     1  package basic
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/annwntech/go-micro/v2/auth"
     7  	"github.com/annwntech/go-micro/v2/auth/token"
     8  	"github.com/annwntech/go-micro/v2/store/memory"
     9  )
    10  
    11  func TestGenerate(t *testing.T) {
    12  	store := memory.NewStore()
    13  	b := NewTokenProvider(token.WithStore(store))
    14  
    15  	_, err := b.Generate(&auth.Account{ID: "test"})
    16  	if err != nil {
    17  		t.Fatalf("Generate returned %v error, expected nil", err)
    18  	}
    19  
    20  	recs, err := store.List()
    21  	if err != nil {
    22  		t.Fatalf("Unable to read from store: %v", err)
    23  	}
    24  	if len(recs) != 1 {
    25  		t.Errorf("Generate didn't write to the store, expected 1 record, got %v", len(recs))
    26  	}
    27  }
    28  
    29  func TestInspect(t *testing.T) {
    30  	store := memory.NewStore()
    31  	b := NewTokenProvider(token.WithStore(store))
    32  
    33  	t.Run("Valid token", func(t *testing.T) {
    34  		md := map[string]string{"foo": "bar"}
    35  		scopes := []string{"admin"}
    36  		subject := "test"
    37  
    38  		tok, err := b.Generate(&auth.Account{ID: subject, Scopes: scopes, Metadata: md})
    39  		if err != nil {
    40  			t.Fatalf("Generate returned %v error, expected nil", err)
    41  		}
    42  
    43  		tok2, err := b.Inspect(tok.Token)
    44  		if err != nil {
    45  			t.Fatalf("Inspect returned %v error, expected nil", err)
    46  		}
    47  		if tok2.ID != subject {
    48  			t.Errorf("Inspect returned %v as the token subject, expected %v", tok2.ID, subject)
    49  		}
    50  		if len(tok2.Scopes) != len(scopes) {
    51  			t.Errorf("Inspect returned %v scopes, expected %v", len(tok2.Scopes), len(scopes))
    52  		}
    53  		if len(tok2.Metadata) != len(md) {
    54  			t.Errorf("Inspect returned %v as the token metadata, expected %v", tok2.Metadata, md)
    55  		}
    56  	})
    57  
    58  	t.Run("Invalid token", func(t *testing.T) {
    59  		_, err := b.Inspect("Invalid token")
    60  		if err != token.ErrInvalidToken {
    61  			t.Fatalf("Inspect returned %v error, expected %v", err, token.ErrInvalidToken)
    62  		}
    63  	})
    64  }