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  }`