github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/redirect_urls_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 TestRedirectURLService_Create_happyPath(t *testing.T) {
    13  	token := "token"
    14  	var redirectURLResponse RedirectURLResponse
    15  	_ = json.Unmarshal([]byte(dummyRedirectURLJson), &redirectURLResponse)
    16  
    17  	client, mux, _, teardown := setup(token)
    18  	defer teardown()
    19  
    20  	mux.HandleFunc("/redirect_urls", func(w http.ResponseWriter, req *http.Request) {
    21  		testHttpMethod(t, req, http.MethodPost)
    22  		testHeader(t, req, "Authorization", "Bearer "+token)
    23  		fmt.Fprint(w, dummyRedirectURLJson)
    24  	})
    25  
    26  	got, err := client.RedirectURLs().Create(CreateRedirectURLParams{
    27  		URL: redirectURLResponse.URL,
    28  	})
    29  
    30  	assert.Nil(t, err)
    31  	assert.Equal(t, *got, redirectURLResponse)
    32  }
    33  
    34  func TestRedirectURLService_Create_invalidServer(t *testing.T) {
    35  	client, _ := NewClient("token")
    36  
    37  	_, err := client.RedirectURLs().Create(CreateRedirectURLParams{
    38  		URL: "example.com",
    39  	})
    40  	if err == nil {
    41  		t.Errorf("Expected error to be returned")
    42  	}
    43  }
    44  
    45  func TestRedirectURLService_ListAll_happyPath(t *testing.T) {
    46  	token := "token"
    47  	var redirectURLResponse RedirectURLResponse
    48  	_ = json.Unmarshal([]byte(dummyRedirectURLJson), &redirectURLResponse)
    49  
    50  	client, mux, _, teardown := setup(token)
    51  	defer teardown()
    52  
    53  	mux.HandleFunc("/redirect_urls", func(w http.ResponseWriter, req *http.Request) {
    54  		testHttpMethod(t, req, http.MethodGet)
    55  		testHeader(t, req, "Authorization", "Bearer "+token)
    56  		fmt.Fprint(w, "["+dummyRedirectURLJson+"]")
    57  	})
    58  
    59  	got, err := client.RedirectURLs().ListAll()
    60  
    61  	assert.Nil(t, err)
    62  	assert.Equal(t, got, []*RedirectURLResponse{&redirectURLResponse})
    63  }
    64  
    65  func TestRedirectURLService_ListAll_invalidServer(t *testing.T) {
    66  	client, _ := NewClient("token")
    67  
    68  	_, err := client.RedirectURLs().ListAll()
    69  	if err == nil {
    70  		t.Errorf("Expected error to be returned")
    71  	}
    72  }
    73  
    74  func TestRedirectURLService_Delete_happyPath(t *testing.T) {
    75  	token := "token"
    76  	client, mux, _, teardown := setup(token)
    77  	defer teardown()
    78  
    79  	id := "some_id"
    80  	mux.HandleFunc("/redirect_urls/"+id, func(w http.ResponseWriter, req *http.Request) {
    81  		testHttpMethod(t, req, http.MethodDelete)
    82  		testHeader(t, req, "Authorization", "Bearer "+token)
    83  
    84  		response := fmt.Sprintf(`{ "deleted": true, "id": "%v", "object": "user" }`, id)
    85  		fmt.Fprint(w, response)
    86  	})
    87  
    88  	got, err := client.RedirectURLs().Delete(id)
    89  	assert.Nil(t, err)
    90  	assert.NotNil(t, got)
    91  }
    92  
    93  func TestRedirectURLService_Delete_invalidServer(t *testing.T) {
    94  	client, _ := NewClient("token")
    95  
    96  	_, err := client.RedirectURLs().Delete("random_id")
    97  	if err == nil {
    98  		t.Errorf("Expected error to be returned")
    99  	}
   100  }
   101  
   102  const dummyRedirectURLJson = `{
   103      "object": "redirect_url",
   104  	"id": "ru_1mvFol71HiKCcypBd6xxg0IpMBN",
   105  	"url": "example.com"
   106  }`