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 }