@@ -1686,6 +1686,48 @@ describe('TransakService', () => {
16861686 await expect ( promise ) . rejects . toThrow ( "failed with status '503'" ) ;
16871687 } ) ;
16881688
1689+ it ( 'passes through errorCode from the API response when present' , async ( ) => {
1690+ const depositOrderId = `${ STAGING_PROVIDER_PATH } /orders/order-abc-123` ;
1691+ const orderWithErrorCode = {
1692+ ...MOCK_DEPOSIT_ORDER ,
1693+ status : 'FAILED' ,
1694+ errorCode : '4005' ,
1695+ } ;
1696+
1697+ nock ( STAGING_ORDERS_BASE )
1698+ . get ( `${ STAGING_PROVIDER_PATH } /orders/order-abc-123` )
1699+ . query ( true )
1700+ . reply ( 200 , orderWithErrorCode ) ;
1701+
1702+ const { service } = getService ( ) ;
1703+
1704+ const promise = service . getOrder ( depositOrderId , '0x1234' ) ;
1705+ await jest . runAllTimersAsync ( ) ;
1706+ await flushPromises ( ) ;
1707+ const result = await promise ;
1708+
1709+ expect ( result . errorCode ) . toBe ( '4005' ) ;
1710+ expect ( result . status ) . toBe ( 'FAILED' ) ;
1711+ } ) ;
1712+
1713+ it ( 'returns undefined errorCode when not present in the API response' , async ( ) => {
1714+ const depositOrderId = `${ STAGING_PROVIDER_PATH } /orders/order-abc-123` ;
1715+
1716+ nock ( STAGING_ORDERS_BASE )
1717+ . get ( `${ STAGING_PROVIDER_PATH } /orders/order-abc-123` )
1718+ . query ( true )
1719+ . reply ( 200 , MOCK_DEPOSIT_ORDER ) ;
1720+
1721+ const { service } = getService ( ) ;
1722+
1723+ const promise = service . getOrder ( depositOrderId , '0x1234' ) ;
1724+ await jest . runAllTimersAsync ( ) ;
1725+ await flushPromises ( ) ;
1726+ const result = await promise ;
1727+
1728+ expect ( result . errorCode ) . toBeUndefined ( ) ;
1729+ } ) ;
1730+
16891731 it ( 'gracefully handles failure when fetching paymentDetails from Transak' , async ( ) => {
16901732 const depositOrderId = `${ STAGING_PROVIDER_PATH } /orders/order-abc-123` ;
16911733 const orderWithoutPaymentDetails = {
0 commit comments