github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/jwks_test.go (about)

     1  package clerk
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"net/http"
     7  	"reflect"
     8  	"testing"
     9  )
    10  
    11  func TestJWKSService_ListAll_happyPath(t *testing.T) {
    12  	c, mux, _, teardown := setup("token")
    13  	defer teardown()
    14  
    15  	mux.HandleFunc("/jwks", func(w http.ResponseWriter, req *http.Request) {
    16  		testHttpMethod(t, req, "GET")
    17  		testHeader(t, req, "Authorization", "Bearer token")
    18  		fmt.Fprint(w, dummyJWKSJson)
    19  	})
    20  
    21  	want := &JWKS{}
    22  	_ = json.Unmarshal([]byte(dummyJWKSJson), want)
    23  
    24  	got, _ := c.JWKS().ListAll()
    25  
    26  	if !reflect.DeepEqual(got, want) {
    27  		t.Errorf("Response = %v, want %v", got, want)
    28  	}
    29  }
    30  
    31  func TestJWKSService_ListAll_invalidServer(t *testing.T) {
    32  	c, _ := NewClient("token")
    33  
    34  	jwks, err := c.JWKS().ListAll()
    35  	if err == nil {
    36  		t.Errorf("Expected error to be returned")
    37  	}
    38  
    39  	if jwks != nil {
    40  		t.Errorf("Was not expecting any jwks to be returned, instead got %+v", jwks)
    41  	}
    42  }
    43  
    44  const dummyJWKSJson = `
    45  {
    46  	"keys":
    47  		[
    48  			{
    49  				"use":"sig",
    50  				"kty":"RSA",
    51  				"kid":"kid",
    52  				"alg":"RS256",
    53  				"n":"8ffrRMLd1z50B1hJcEfoxPac2wm9U_SXCnoXxSg5frRyW1oI1t9e78y8sOOwUt-IU4FXNcNK93dsCDQMeDBc6EfLxPBHuCB4SbVvsbpdMH8XSy9qLH6AJmS1GqOldYG0VkP1YzSwGXTkflgcDLCtYOHxkjiK6m5TnhJ4tu77bkjPrINiWAo4jAYBCjk1gqiW3LZWZwzwvqF_7n8g50JbhoTiJi2z6rd0anSFgi1A9AbViKwlzdxkll1uW90W1kn_Zs6lC6Yz7-X9WmelhxxUoLVE49BcCQ82PtmlBvxDQk7rREPLRbvzJSI0RIw1HMChRkZC_KtsLNkgPKq5tY_YSw",
    54  				"e":"AQAB"
    55  			}
    56  		]
    57  	}
    58  `