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 }