Skip to content

Commit

Permalink
Fix not loading alternative payments due to simple order changes
Browse files Browse the repository at this point in the history
  • Loading branch information
cxfos committed May 17, 2024
1 parent 324e44d commit f8eaa1b
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
7 changes: 6 additions & 1 deletion src/initialize/initialize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,12 @@ export async function initialize(initData: IInitializeOrderResponse | IInitializ
const returnObject = {...baseReturnObject};
returnObject.success = true;
returnObject.response = initData;
const keysToCheck = [keysToTestFromResponse.jwt_token, keysToTestFromResponse.public_order_id];
let keysToCheck = [keysToTestFromResponse.applicationState, keysToTestFromResponse.initial_data, keysToTestFromResponse.jwt_token, keysToTestFromResponse.public_order_id];

if (!('initial_data' in initData)) {
keysToCheck = [keysToTestFromResponse.jwt_token, keysToTestFromResponse.public_order_id];
}

const returnValue = checkApiResponse(returnObject, keysToCheck);
if(!returnValue.success) {
return returnValue;
Expand Down
22 changes: 21 additions & 1 deletion tests/initialize/initialize.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
import {environmentTypes, apiErrors, baseReturnObject, initialize, IApiReturnObject, IFetchError, FetchError} from 'src';
import {
environmentTypes,
apiErrors,
baseReturnObject,
initialize,
IApiReturnObject,
IFetchError,
FetchError,
IInitializeSimpleOrderResponse
} from 'src';
import {initializeOrderResponseMock} from 'src/variables/mocks';
import * as checkApiResponse from 'src/utils/apiResponse';

Expand Down Expand Up @@ -32,6 +41,17 @@ describe('testing initialize function', () => {
expect(checkApiResponseSpy).toHaveBeenCalledTimes(timesCalled);
});

test('successful initialize with simple order', async () => {
const simpleOrder: IInitializeSimpleOrderResponse = {jwt_token: initData.jwt_token, public_order_id: initData.public_order_id, flow_settings: initData.initial_data.flow_settings};
checkApiResponseSpy.mockReturnValueOnce(successReturn);
const response = await initialize(simpleOrder, 'shopIdentifier', { type: environmentTypes.staging });

expect((response as IApiReturnObject).success).toBe(true);
expect((response as IApiReturnObject).error).toBeNull();
expect((response as IApiReturnObject).response).toEqual(successReturn.response);
expect(checkApiResponseSpy).toHaveBeenCalledTimes(timesCalled);
});

test('failed initalize: key not found in object', async () => {
const tempReturnObject = {...baseReturnObject};
tempReturnObject.error = new FetchError(apiErrors.general.status, apiErrors.general.message);
Expand Down

0 comments on commit f8eaa1b

Please sign in to comment.