@@ -14,7 +14,9 @@ describe('M2MToken', () => {
1414 subject : 'mch_xxxxx' ,
1515 scopes : [ 'mch_1xxxxx' , 'mch_2xxxxx' ] ,
1616 claims : { foo : 'bar' } ,
17+ // Deprecated in favor of `token`
1718 secret : m2mSecret ,
19+ token : m2mSecret ,
1820 revoked : false ,
1921 revocation_reason : null ,
2022 expired : false ,
@@ -46,6 +48,7 @@ describe('M2MToken', () => {
4648
4749 expect ( response . id ) . toBe ( m2mId ) ;
4850 expect ( response . secret ) . toBe ( m2mSecret ) ;
51+ expect ( response . token ) . toBe ( m2mSecret ) ;
4952 expect ( response . scopes ) . toEqual ( [ 'mch_1xxxxx' , 'mch_2xxxxx' ] ) ;
5053 expect ( response . claims ) . toEqual ( { foo : 'bar' } ) ;
5154 } ) ;
@@ -206,7 +209,84 @@ describe('M2MToken', () => {
206209 } ) ;
207210 } ) ;
208211
209- describe ( 'verifySecret' , ( ) => {
212+ describe ( 'verifyToken' , ( ) => {
213+ it ( 'verifies a m2m token using machine secret' , async ( ) => {
214+ const apiClient = createBackendApiClient ( {
215+ apiUrl : 'https://api.clerk.test' ,
216+ machineSecretKey : 'ak_xxxxx' ,
217+ } ) ;
218+
219+ server . use (
220+ http . post (
221+ 'https://api.clerk.test/m2m_tokens/verify' ,
222+ validateHeaders ( ( { request } ) => {
223+ expect ( request . headers . get ( 'Authorization' ) ) . toBe ( 'Bearer ak_xxxxx' ) ;
224+ return HttpResponse . json ( mockM2MToken ) ;
225+ } ) ,
226+ ) ,
227+ ) ;
228+
229+ const response = await apiClient . m2mTokens . verifyToken ( {
230+ token : m2mSecret ,
231+ } ) ;
232+
233+ expect ( response . id ) . toBe ( m2mId ) ;
234+ expect ( response . secret ) . toBe ( m2mSecret ) ;
235+ expect ( response . scopes ) . toEqual ( [ 'mch_1xxxxx' , 'mch_2xxxxx' ] ) ;
236+ expect ( response . claims ) . toEqual ( { foo : 'bar' } ) ;
237+ } ) ;
238+
239+ it ( 'verifies a m2m token using instance secret' , async ( ) => {
240+ const apiClient = createBackendApiClient ( {
241+ apiUrl : 'https://api.clerk.test' ,
242+ secretKey : 'sk_xxxxx' ,
243+ } ) ;
244+
245+ server . use (
246+ http . post (
247+ 'https://api.clerk.test/m2m_tokens/verify' ,
248+ validateHeaders ( ( { request } ) => {
249+ expect ( request . headers . get ( 'Authorization' ) ) . toBe ( 'Bearer sk_xxxxx' ) ;
250+ return HttpResponse . json ( mockM2MToken ) ;
251+ } ) ,
252+ ) ,
253+ ) ;
254+
255+ const response = await apiClient . m2mTokens . verifyToken ( {
256+ token : m2mSecret ,
257+ } ) ;
258+
259+ expect ( response . id ) . toBe ( m2mId ) ;
260+ expect ( response . secret ) . toBe ( m2mSecret ) ;
261+ expect ( response . scopes ) . toEqual ( [ 'mch_1xxxxx' , 'mch_2xxxxx' ] ) ;
262+ expect ( response . claims ) . toEqual ( { foo : 'bar' } ) ;
263+ } ) ;
264+
265+ it ( 'requires a machine secret or instance secret to verify a m2m token' , async ( ) => {
266+ const apiClient = createBackendApiClient ( {
267+ apiUrl : 'https://api.clerk.test' ,
268+ } ) ;
269+
270+ server . use (
271+ http . post (
272+ 'https://api.clerk.test/m2m_tokens/verify' ,
273+ validateHeaders ( ( ) => {
274+ return HttpResponse . json ( mockM2MToken ) ;
275+ } ) ,
276+ ) ,
277+ ) ;
278+
279+ const errResponse = await apiClient . m2mTokens
280+ . verifyToken ( {
281+ token : m2mSecret ,
282+ } )
283+ . catch ( err => err ) ;
284+
285+ expect ( errResponse . status ) . toBe ( 401 ) ;
286+ } ) ;
287+ } ) ;
288+
289+ describe ( 'verifySecret (deprecated)' , ( ) => {
210290 it ( 'verifies a m2m token using machine secret' , async ( ) => {
211291 const apiClient = createBackendApiClient ( {
212292 apiUrl : 'https://api.clerk.test' ,
0 commit comments