github.com/clerkinc/clerk-sdk-go@v1.49.1/tests/integration/actor_tokens_test.go (about)

     1  //go:build integration
     2  // +build integration
     3  
     4  package integration
     5  
     6  import (
     7  	"fmt"
     8  	"testing"
     9  	"time"
    10  
    11  	"github.com/clerkinc/clerk-sdk-go/clerk"
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestActorTokens(t *testing.T) {
    16  	client := createClient()
    17  
    18  	password := "my-extremely_Str0ng_P445wOrd"
    19  	firstName := "John"
    20  	lastName := "Doe"
    21  	user, err := client.Users().Create(clerk.CreateUserParams{
    22  		EmailAddresses: []string{
    23  			fmt.Sprintf("email_%d@example.com", time.Now().Unix()),
    24  		},
    25  		Password:  &password,
    26  		FirstName: &firstName,
    27  		LastName:  &lastName,
    28  	})
    29  	if err != nil {
    30  		t.Fatal(err)
    31  	}
    32  
    33  	// create actor token
    34  	createParams := clerk.CreateActorTokenParams{
    35  		UserID: user.ID,
    36  		Actor:  []byte(`{"sub":"my_actor_id"}`),
    37  	}
    38  	actorTokenResponse, err := client.ActorTokens().Create(createParams)
    39  	if err != nil {
    40  		t.Fatal(err)
    41  	}
    42  
    43  	assert.NotNil(t, actorTokenResponse.ID)
    44  	assert.Equal(t, "pending", actorTokenResponse.Status)
    45  	assert.JSONEq(t, string(createParams.Actor), string(actorTokenResponse.Actor))
    46  	assert.Equal(t, createParams.UserID, actorTokenResponse.UserID)
    47  
    48  	// revoke the previously created token
    49  	actorTokenResponse, err = client.ActorTokens().Revoke(actorTokenResponse.ID)
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  
    54  	assert.Equal(t, "revoked", actorTokenResponse.Status)
    55  	assert.Empty(t, actorTokenResponse.Token)
    56  }