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 }`