@@ -4,6 +4,7 @@ import sinon from 'sinon';
44import emailJson from '../fixtures/responses/email.json' ;
55import userJson from '../fixtures/responses/user.json' ;
66import runtime from '../runtime' ;
7+ import { assertErrorResponse , assertResponse } from '../util/assertResponse' ;
78import { jsonError , jsonNotOk , jsonOk } from '../util/mockFetch' ;
89import { createBackendApiClient } from './factory' ;
910
@@ -26,22 +27,17 @@ export default (QUnit: QUnit) => {
2627 fakeFetch = sinon . stub ( runtime , 'fetch' ) ;
2728 fakeFetch . onCall ( 0 ) . returns ( jsonOk ( userJson ) ) ;
2829
29- const payload = await apiClient . users . getUser ( 'user_deadbeef' ) ;
30+ const response = await apiClient . users . getUser ( 'user_deadbeef' ) ;
3031
31- if ( ! payload ) {
32- // eslint-disable-next-line qunit/no-conditional-assertions
33- assert . false ( true , 'This assertion should never fail. We need to check for payload to make TS happy.' ) ;
34- // eslint-disable-next-line qunit/no-early-return
35- return ;
36- }
32+ assertResponse ( assert , response ) ;
33+ const { data : payload } = response ;
3734
3835 assert . equal ( payload . firstName , 'John' ) ;
3936 assert . equal ( payload . lastName , 'Doe' ) ;
4037 assert . equal ( payload . emailAddresses [ 0 ] . emailAddress , 'john.doe@clerk.test' ) ;
4138 assert . equal ( payload . phoneNumbers [ 0 ] . phoneNumber , '+311-555-2368' ) ;
4239 assert . equal ( payload . externalAccounts [ 0 ] . emailAddress , 'john.doe@clerk.test' ) ;
4340 assert . equal ( payload . publicMetadata . zodiac_sign , 'leo' ) ;
44- // assert.equal(payload.errors, null);
4541
4642 assert . ok (
4743 fakeFetch . calledOnceWith ( 'https://api.clerk.test/v1/users/user_deadbeef' , {
@@ -59,22 +55,16 @@ export default (QUnit: QUnit) => {
5955 fakeFetch = sinon . stub ( runtime , 'fetch' ) ;
6056 fakeFetch . onCall ( 0 ) . returns ( jsonOk ( [ userJson ] ) ) ;
6157
62- const payload = await apiClient . users . getUserList ( { offset : 2 , limit : 5 } ) ;
63-
64- if ( ! payload ) {
65- // eslint-disable-next-line qunit/no-conditional-assertions
66- assert . false ( true , 'This assertion should never fail. We need to check for payload to make TS happy.' ) ;
67- // eslint-disable-next-line qunit/no-early-return
68- return ;
69- }
58+ const response = await apiClient . users . getUserList ( { offset : 2 , limit : 5 } ) ;
59+ assertResponse ( assert , response ) ;
60+ const { data : payload } = response ;
7061
7162 assert . equal ( payload [ 0 ] . firstName , 'John' ) ;
7263 assert . equal ( payload [ 0 ] . lastName , 'Doe' ) ;
7364 assert . equal ( payload [ 0 ] . emailAddresses [ 0 ] . emailAddress , 'john.doe@clerk.test' ) ;
7465 assert . equal ( payload [ 0 ] . phoneNumbers [ 0 ] . phoneNumber , '+311-555-2368' ) ;
7566 assert . equal ( payload [ 0 ] . externalAccounts [ 0 ] . emailAddress , 'john.doe@clerk.test' ) ;
7667 assert . equal ( payload [ 0 ] . publicMetadata . zodiac_sign , 'leo' ) ;
77- // assert.equal(payload.errors, null);
7868
7969 assert . ok (
8070 fakeFetch . calledOnceWith ( 'https://api.clerk.test/v1/users?offset=2&limit=5' , {
@@ -100,14 +90,10 @@ export default (QUnit: QUnit) => {
10090 } ;
10191 const requestBody =
10292 '{"from_email_name":"foobar123","email_address_id":"test@test.dev","body":"this is a test","subject":"this is a test"}' ;
103- const payload = await apiClient . emails . createEmail ( body ) ;
104-
105- if ( ! payload ) {
106- // eslint-disable-next-line qunit/no-conditional-assertions
107- assert . false ( true , 'This assertion should never fail. We need to check for payload to make TS happy.' ) ;
108- // eslint-disable-next-line qunit/no-early-return
109- return ;
110- }
93+ const response = await apiClient . emails . createEmail ( body ) ;
94+ assertResponse ( assert , response ) ;
95+ const { data : payload } = response ;
96+
11197 assert . equal ( JSON . stringify ( payload . data ) , '{}' ) ;
11298 assert . equal ( payload . id , 'ema_2PHa2N3bS7D6NPPQ5mpHEg0waZQ' ) ;
11399
@@ -126,15 +112,19 @@ export default (QUnit: QUnit) => {
126112
127113 test ( 'executes a successful backend API request to create a new resource' , async assert => {
128114 fakeFetch = sinon . stub ( runtime , 'fetch' ) ;
129- fakeFetch . onCall ( 0 ) . returns ( jsonOk ( [ userJson ] ) ) ;
115+ fakeFetch . onCall ( 0 ) . returns ( jsonOk ( userJson ) ) ;
130116
131- await apiClient . users . createUser ( {
117+ const response = await apiClient . users . createUser ( {
132118 firstName : 'John' ,
133119 lastName : 'Doe' ,
134120 publicMetadata : {
135121 star_sign : 'Leon' ,
136122 } ,
137123 } ) ;
124+ assertResponse ( assert , response ) ;
125+ const { data : payload } = response ;
126+
127+ assert . equal ( payload . firstName , 'John' ) ;
138128
139129 assert . ok (
140130 fakeFetch . calledOnceWith ( 'https://api.clerk.test/v1/users' , {
@@ -161,14 +151,13 @@ export default (QUnit: QUnit) => {
161151 fakeFetch = sinon . stub ( runtime , 'fetch' ) ;
162152 fakeFetch . onCall ( 0 ) . returns ( jsonNotOk ( { errors : [ mockErrorPayload ] , clerk_trace_id : traceId } ) ) ;
163153
164- try {
165- await apiClient . users . getUser ( 'user_deadbeef' ) ;
166- } catch ( e : any ) {
167- assert . equal ( e . clerkTraceId , traceId ) ;
168- assert . true ( e . clerkError ) ;
169- assert . equal ( e . status , 422 ) ;
170- assert . equal ( e . errors [ 0 ] . code , 'whatever_error' ) ;
171- }
154+ const response = await apiClient . users . getUser ( 'user_deadbeef' ) ;
155+ assertErrorResponse ( assert , response ) ;
156+
157+ assert . equal ( response . clerkTraceId , traceId ) ;
158+ assert . equal ( response . status , 422 ) ;
159+ assert . equal ( response . statusText , '422' ) ;
160+ assert . equal ( response . errors [ 0 ] . code , 'whatever_error' ) ;
172161
173162 assert . ok (
174163 fakeFetch . calledOnceWith ( 'https://api.clerk.test/v1/users/user_deadbeef' , {
@@ -186,13 +175,12 @@ export default (QUnit: QUnit) => {
186175 fakeFetch = sinon . stub ( runtime , 'fetch' ) ;
187176 fakeFetch . onCall ( 0 ) . returns ( jsonError ( { errors : [ ] } ) ) ;
188177
189- try {
190- await apiClient . users . getUser ( 'user_deadbeef' ) ;
191- } catch ( e : any ) {
192- assert . true ( e . clerkError ) ;
193- assert . equal ( e . status , 500 ) ;
194- assert . equal ( e . clerkTraceId , 'mock_cf_ray' ) ;
195- }
178+ const response = await apiClient . users . getUser ( 'user_deadbeef' ) ;
179+ assertErrorResponse ( assert , response ) ;
180+
181+ assert . equal ( response . status , 500 ) ;
182+ assert . equal ( response . statusText , '500' ) ;
183+ assert . equal ( response . clerkTraceId , 'mock_cf_ray' ) ;
196184
197185 assert . ok (
198186 fakeFetch . calledOnceWith ( 'https://api.clerk.test/v1/users/user_deadbeef' , {
0 commit comments