Skip to content

Commit 2060fd1

Browse files
authored
Setting default shipping line when getting the available shipping lines from RSA. (#17)
1 parent 5adac12 commit 2060fd1

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

src/paypal/ppcp_apple/ppcpOnShippingContactSelectedApple.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import {
1515
setTaxes,
1616
estimateShippingLines,
1717
estimateTaxes,
18-
getOrderInitialData
18+
getOrderInitialData,
19+
changeShippingLine
1920
} from '@boldcommerce/checkout-frontend-library';
2021

2122
export async function ppcpOnShippingContactSelectedApple(event: ApplePayShippingContactSelectedEvent): Promise<void> {
@@ -50,6 +51,11 @@ export async function ppcpOnShippingContactSelectedApple(event: ApplePayShipping
5051
let shippingResponseSuccess = true;
5152

5253
if (rsaEnabled) {
54+
const {selected_shipping: selectedShipping, available_shipping_lines: shippingLines} = getShipping();
55+
if (!selectedShipping && shippingLines.length > 0) {
56+
await changeShippingLine(shippingLines[0].id, API_RETRY);
57+
}
58+
await getShippingLines(API_RETRY);
5359
taxResponse = await estimateTaxes(address, API_RETRY);
5460
} else {
5561
const shippingLinesResponse = await getShippingLines(API_RETRY);

tests/paypal/ppcp_apple/ppcpOnShippingContactSelectedApple.test.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
setTaxes,
1717
estimateTaxes,
1818
estimateShippingLines,
19-
getOrderInitialData
19+
getOrderInitialData, IShipping
2020
} from '@boldcommerce/checkout-frontend-library';
2121
import {
2222
addressesMock,
@@ -127,6 +127,14 @@ describe('testing ppcpOnShippingContactSelectedApple function',() => {
127127
newShippingMethods: shippingMethodsMock,
128128
newTotal: {amount: '100.00', label: 'Total'}
129129
};
130+
131+
getShippingMock.mockReturnValueOnce(
132+
{...shippingMock,
133+
selected_shipping: null,
134+
available_shipping_lines: [
135+
{id: '1', description: 'option'}
136+
]} as unknown as IShipping
137+
);
130138
orderInitialDataMock.general_settings.checkout_process.rsa_enabled = true;
131139
getOrderInitialDataMock.mockReturnValue(orderInitialDataMock);
132140

@@ -142,7 +150,7 @@ describe('testing ppcpOnShippingContactSelectedApple function',() => {
142150
expect(estimateTaxesMock).toBeCalledWith(addressesMock.shipping, API_RETRY);
143151
expect(getApplicationStateMock).toBeCalledTimes(1);
144152
expect(getPaymentRequestDisplayItemsMock).toBeCalledTimes(1);
145-
expect(getShippingMock).toBeCalledTimes(1);
153+
expect(getShippingMock).toBeCalledTimes(2);
146154
expect(applePaySessionCompleteShippingContactSelection).toBeCalledTimes(1);
147155
expect(applePaySessionCompleteShippingContactSelection).toBeCalledWith(expectedCompleteParam);
148156
});

0 commit comments

Comments
 (0)