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

     1  //go:build integration
     2  // +build integration
     3  
     4  package integration
     5  
     6  import (
     7  	"encoding/json"
     8  	"fmt"
     9  	"testing"
    10  	"time"
    11  
    12  	"github.com/stretchr/testify/assert"
    13  
    14  	"github.com/clerkinc/clerk-sdk-go/clerk"
    15  )
    16  
    17  func TestJWTTemplates(t *testing.T) {
    18  	c := createClient()
    19  
    20  	jwtTemplates, err := c.JWTTemplates().ListAll()
    21  	if err != nil {
    22  		t.Fatalf("JWTTemplates.ListAll returned error: %v", err)
    23  	}
    24  	if jwtTemplates == nil {
    25  		t.Fatalf("JWTTemplates.ListAll returned nil")
    26  	}
    27  
    28  	for _, jwtTemplate := range jwtTemplates {
    29  		tmpl, err := c.JWTTemplates().Read(jwtTemplate.ID)
    30  		if err != nil {
    31  			t.Fatalf("JWTTemplates.Read returned error: %v", err)
    32  		}
    33  		if tmpl == nil {
    34  			t.Fatalf("JWTTemplates.Read returned nil")
    35  		}
    36  	}
    37  
    38  	newJWTTemplate := &clerk.CreateUpdateJWTTemplate{
    39  		Name: fmt.Sprintf("Integration-%d", time.Now().Unix()),
    40  		Claims: map[string]interface{}{
    41  			"name": "{{user.first_name}}",
    42  			"role": "tester",
    43  		},
    44  	}
    45  
    46  	jwtTemplate, err := c.JWTTemplates().Create(newJWTTemplate)
    47  	if err != nil {
    48  		t.Fatalf("JWTTemplates.Create returned error: %v", err)
    49  	}
    50  
    51  	assert.Equal(t, newJWTTemplate.Name, jwtTemplate.Name)
    52  	assert.Equal(t, 60, jwtTemplate.Lifetime)
    53  	assert.Equal(t, 5, jwtTemplate.AllowedClockSkew)
    54  
    55  	updateJWTTemplate := &clerk.CreateUpdateJWTTemplate{
    56  		Name: fmt.Sprintf("Updated-Integration-%d", time.Now().Unix()),
    57  		Claims: map[string]interface{}{
    58  			"name": "{{user.first_name}}",
    59  			"age":  28,
    60  		},
    61  	}
    62  
    63  	updated, err := c.JWTTemplates().Update(jwtTemplate.ID, updateJWTTemplate)
    64  	if err != nil {
    65  		t.Fatalf("JWTTemplates.Create returned error: %v", err)
    66  	}
    67  
    68  	assert.Equal(t, jwtTemplate.ID, updated.ID)
    69  	assert.Equal(t, updateJWTTemplate.Name, updated.Name)
    70  
    71  	expectedClaimsBytes, _ := json.Marshal(updateJWTTemplate.Claims)
    72  	assert.JSONEq(t, string(expectedClaimsBytes), string(updated.Claims))
    73  
    74  	_, err = c.JWTTemplates().Delete(jwtTemplate.ID)
    75  	if err != nil {
    76  		t.Fatalf("JWTTemplates.Delete returned error: %v", err)
    77  	}
    78  }