github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/actor_tokens_test.go (about) 1 package clerk 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "net/http" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestActorTokenService_CreateIdentifier_happyPath(t *testing.T) { 13 token := "token" 14 var actorTokenResponse ActorTokenResponse 15 _ = json.Unmarshal([]byte(dummyActorTokenJson), &actorTokenResponse) 16 17 client, mux, _, teardown := setup(token) 18 defer teardown() 19 20 mux.HandleFunc("/actor_tokens", func(w http.ResponseWriter, req *http.Request) { 21 testHttpMethod(t, req, http.MethodPost) 22 testHeader(t, req, "Authorization", "Bearer "+token) 23 fmt.Fprint(w, dummyActorTokenJson) 24 }) 25 26 got, _ := client.ActorTokens().Create(CreateActorTokenParams{ 27 Actor: actorTokenResponse.Actor, 28 UserID: actorTokenResponse.UserID, 29 }) 30 31 assert.Equal(t, &actorTokenResponse, got) 32 } 33 34 func TestActorTokenService_Create_invalidServer(t *testing.T) { 35 client, _ := NewClient("token") 36 37 _, err := client.ActorTokens().Create(CreateActorTokenParams{ 38 Actor: []byte(`{"sub":"some_actor_id"}`), 39 UserID: "some_user_id", 40 }) 41 if err == nil { 42 t.Errorf("Expected error to be returned") 43 } 44 } 45 46 func TestActorTokenService_Revoke_happyPath(t *testing.T) { 47 token := "token" 48 var actorTokenResponse ActorTokenResponse 49 _ = json.Unmarshal([]byte(dummyActorTokenJson), &actorTokenResponse) 50 51 client, mux, _, teardown := setup(token) 52 defer teardown() 53 54 mux.HandleFunc("/actor_tokens/"+actorTokenResponse.ID+"/revoke", func(w http.ResponseWriter, req *http.Request) { 55 testHttpMethod(t, req, http.MethodPost) 56 testHeader(t, req, "Authorization", "Bearer "+token) 57 _, _ = fmt.Fprint(w, dummyActorTokenJson) 58 }) 59 60 got, _ := client.ActorTokens().Revoke(actorTokenResponse.ID) 61 assert.Equal(t, &actorTokenResponse, got) 62 } 63 64 func TestActorTokenService_Revoke_invalidServer(t *testing.T) { 65 client, _ := NewClient("token") 66 67 _, err := client.ActorTokens().Revoke("impt_2EKxJqKTYcBMlzMh6BGe2C7kh6b") 68 if err == nil { 69 t.Errorf("Expected error to be returned") 70 } 71 } 72 73 const dummyActorTokenJson = `{ 74 "id": "impt_2EKxJqKTYcBMlzMh6BGe2C7kh6b", 75 "object": "actor_token", 76 "actor": { 77 "sub": "some_actor_id", 78 "iss": "the-issuer" 79 }, 80 "user_id": "user_2EKwinD5cZID96QP1ruHsnfGx50", 81 "status": "pending", 82 "token": "my-token", 83 "created_at": 1662358007949, 84 "updated_at": 1662358007949 85 }`