Skip to content

Commit c5612c5

Browse files
committed
fix(checkout): CHECKOUT-3011 Make sure host config is passed along for CheckoutService
1 parent b95784b commit c5612c5

29 files changed

+80
-60
lines changed

src/billing/billing-address-action-creator.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Response } from '@bigcommerce/request-sender';
1+
import { createRequestSender, Response } from '@bigcommerce/request-sender';
22
import { omit } from 'lodash';
33
import { Observable } from 'rxjs';
44

@@ -26,7 +26,7 @@ describe('BillingAddressActionCreator', () => {
2626
response = getResponse(getCheckout());
2727
errorResponse = getErrorResponse();
2828
state = getCheckoutStoreState();
29-
checkoutClient = createCheckoutClient();
29+
checkoutClient = createCheckoutClient(createRequestSender());
3030

3131
jest.spyOn(checkoutClient, 'updateBillingAddress').mockImplementation(() => Promise.resolve(response));
3232
jest.spyOn(checkoutClient, 'createBillingAddress').mockImplementation(() => Promise.resolve(response));

src/checkout/create-checkout-client.spec.js renamed to src/checkout/create-checkout-client.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
import { createRequestSender } from '@bigcommerce/request-sender';
2+
13
import CheckoutClient from './checkout-client';
24
import createCheckoutClient from './create-checkout-client';
35

46
describe('createCheckoutClient()', () => {
57
it('creates an instance of CheckoutClient', () => {
6-
const checkoutClient = createCheckoutClient();
8+
const checkoutClient = createCheckoutClient(createRequestSender());
79

810
expect(checkoutClient).toEqual(expect.any(CheckoutClient));
911
});

src/checkout/create-checkout-client.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createRequestSender } from '@bigcommerce/request-sender';
1+
import { RequestSender } from '@bigcommerce/request-sender';
22

33
import { BillingAddressRequestSender } from '../billing';
44
import { CustomerRequestSender } from '../customer';
@@ -8,9 +8,10 @@ import { ShippingCountryRequestSender } from '../shipping';
88

99
import CheckoutClient from './checkout-client';
1010

11-
export default function createCheckoutClient(config: { locale?: string } = {}): CheckoutClient {
12-
const requestSender = createRequestSender();
13-
11+
export default function createCheckoutClient(
12+
requestSender: RequestSender,
13+
config: { locale?: string } = {}
14+
): CheckoutClient {
1415
const billingAddressRequestSender = new BillingAddressRequestSender(requestSender);
1516
const countryRequestSender = new CountryRequestSender(requestSender, config);
1617
const customerRequestSender = new CustomerRequestSender(requestSender);

src/checkout/create-checkout-service.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ export default function createCheckoutService(options?: CheckoutServiceOptions):
4545
}
4646

4747
const { locale = '', shouldWarnMutation = true } = options || {};
48-
const client = createCheckoutClient({ locale });
48+
const requestSender = createRequestSender({ host: options && options.host });
49+
const client = createCheckoutClient(requestSender, { locale });
4950
const store = createCheckoutStore({}, { shouldWarnMutation });
5051
const paymentClient = createPaymentClient(store);
51-
const requestSender = createRequestSender({ host: options && options.host });
5252
const checkoutRequestSender = new CheckoutRequestSender(requestSender);
5353
const configActionCreator = new ConfigActionCreator(new ConfigRequestSender(requestSender));
5454
const orderActionCreator = new OrderActionCreator(client, new CheckoutValidator(checkoutRequestSender));
@@ -61,17 +61,17 @@ export default function createCheckoutService(options?: CheckoutServiceOptions):
6161
new ConsignmentActionCreator(new ConsignmentRequestSender(requestSender), checkoutRequestSender),
6262
new CountryActionCreator(client),
6363
new CouponActionCreator(new CouponRequestSender(requestSender)),
64-
new CustomerStrategyActionCreator(createCustomerStrategyRegistry(store)),
64+
new CustomerStrategyActionCreator(createCustomerStrategyRegistry(store, requestSender)),
6565
new GiftCertificateActionCreator(new GiftCertificateRequestSender(requestSender)),
6666
new InstrumentActionCreator(new InstrumentRequestSender(paymentClient, requestSender)),
6767
orderActionCreator,
6868
new PaymentMethodActionCreator(new PaymentMethodRequestSender(requestSender)),
6969
new PaymentStrategyActionCreator(
70-
createPaymentStrategyRegistry(store, client, paymentClient),
70+
createPaymentStrategyRegistry(store, client, paymentClient, requestSender),
7171
orderActionCreator
7272
),
7373
new ShippingCountryActionCreator(client),
74-
new ShippingStrategyActionCreator(createShippingStrategyRegistry(store))
74+
new ShippingStrategyActionCreator(createShippingStrategyRegistry(store, requestSender))
7575
);
7676
}
7777

src/customer/create-customer-strategy-registry.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { createFormPoster } from '@bigcommerce/form-poster';
2-
import { createRequestSender } from '@bigcommerce/request-sender';
2+
import { RequestSender } from '@bigcommerce/request-sender';
33
import { getScriptLoader } from '@bigcommerce/script-loader';
44

55
import { CheckoutActionCreator, CheckoutRequestSender, CheckoutStore } from '../checkout';
@@ -22,9 +22,11 @@ import {
2222
DefaultCustomerStrategy,
2323
} from './strategies';
2424

25-
export default function createCustomerStrategyRegistry(store: CheckoutStore): Registry<CustomerStrategy> {
25+
export default function createCustomerStrategyRegistry(
26+
store: CheckoutStore,
27+
requestSender: RequestSender
28+
): Registry<CustomerStrategy> {
2629
const registry = new Registry<CustomerStrategy>();
27-
const requestSender = createRequestSender();
2830
const checkoutActionCreator = new CheckoutActionCreator(
2931
new CheckoutRequestSender(requestSender),
3032
new ConfigActionCreator(new ConfigRequestSender(requestSender))
@@ -50,7 +52,7 @@ export default function createCustomerStrategyRegistry(store: CheckoutStore): Re
5052
paymentMethodActionCreator,
5153
new CustomerStrategyActionCreator(registry),
5254
remoteCheckoutActionCreator,
53-
createBraintreeVisaCheckoutPaymentProcessor(getScriptLoader()),
55+
createBraintreeVisaCheckoutPaymentProcessor(getScriptLoader(), requestSender),
5456
new VisaCheckoutScriptLoader(getScriptLoader())
5557
)
5658
);

src/customer/customer-strategy-action-creator.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ describe('CustomerStrategyActionCreator', () => {
2727
);
2828

2929
store = createCheckoutStore();
30-
registry = createCustomerStrategyRegistry(store);
30+
registry = createCustomerStrategyRegistry(store, createRequestSender());
3131
strategy = new DefaultCustomerStrategy(
3232
store,
3333
new CustomerActionCreator(

src/customer/strategies/braintree-visacheckout-customer-strategy.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ describe('BraintreeVisaCheckoutCustomerStrategy', () => {
3535

3636
beforeEach(() => {
3737
const scriptLoader = createScriptLoader();
38-
braintreeVisaCheckoutPaymentProcessor = createBraintreeVisaCheckoutPaymentProcessor(scriptLoader);
38+
const requestSender = createRequestSender();
39+
braintreeVisaCheckoutPaymentProcessor = createBraintreeVisaCheckoutPaymentProcessor(scriptLoader, requestSender);
3940
braintreeVisaCheckoutPaymentProcessor.initialize = jest.fn(() => Promise.resolve());
4041
braintreeVisaCheckoutPaymentProcessor.handleSuccess = jest.fn(() => Promise.resolve());
4142

@@ -56,7 +57,7 @@ describe('BraintreeVisaCheckoutCustomerStrategy', () => {
5657
visaCheckoutScriptLoader = new VisaCheckoutScriptLoader(scriptLoader);
5758
visaCheckoutScriptLoader.load = jest.fn(() => Promise.resolve(visaCheckoutSDK));
5859

59-
const registry = createCustomerStrategyRegistry(store);
60+
const registry = createCustomerStrategyRegistry(store, createRequestSender());
6061
const checkoutRequestSender = new CheckoutRequestSender(createRequestSender());
6162
const configRequestSender = new ConfigRequestSender(createRequestSender());
6263
const configActionCreator = new ConfigActionCreator(configRequestSender);

src/payment/create-payment-strategy-registry.spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createClient as createPaymentClient } from '@bigcommerce/bigpay-client';
2+
import { createRequestSender } from '@bigcommerce/request-sender';
23

34
import { createCheckoutClient, createCheckoutStore } from '../checkout';
45

@@ -24,9 +25,10 @@ describe('CreatePaymentStrategyRegistry', () => {
2425

2526
beforeEach(() => {
2627
const store = createCheckoutStore();
27-
const client = createCheckoutClient();
28+
const requestSender = createRequestSender();
29+
const client = createCheckoutClient(requestSender);
2830
const paymentClient = createPaymentClient();
29-
registry = createPaymentStrategyRegistry(store, client, paymentClient);
31+
registry = createPaymentStrategyRegistry(store, client, paymentClient, requestSender);
3032
});
3133

3234
it('can create a payment strategy registry', () => {

src/payment/create-payment-strategy-registry.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { createFormPoster } from '@bigcommerce/form-poster';
2-
import { createRequestSender } from '@bigcommerce/request-sender';
2+
import { RequestSender } from '@bigcommerce/request-sender';
33
import { getScriptLoader } from '@bigcommerce/script-loader';
44

55
import { BillingAddressActionCreator } from '../billing';
@@ -43,12 +43,12 @@ import { WepayRiskClient } from './strategies/wepay';
4343
export default function createPaymentStrategyRegistry(
4444
store: CheckoutStore,
4545
client: CheckoutClient,
46-
paymentClient: any
46+
paymentClient: any,
47+
requestSender: RequestSender
4748
) {
4849
const registry = new PaymentStrategyRegistry(store, { defaultToken: 'creditcard' });
4950
const scriptLoader = getScriptLoader();
5051
const braintreePaymentProcessor = createBraintreePaymentProcessor(scriptLoader);
51-
const requestSender = createRequestSender();
5252

5353
const checkoutRequestSender = new CheckoutRequestSender(requestSender);
5454
const checkoutValidator = new CheckoutValidator(checkoutRequestSender);
@@ -59,7 +59,7 @@ export default function createPaymentStrategyRegistry(
5959
);
6060
const paymentMethodActionCreator = new PaymentMethodActionCreator(new PaymentMethodRequestSender(requestSender));
6161
const remoteCheckoutActionCreator = new RemoteCheckoutActionCreator(
62-
new RemoteCheckoutRequestSender(createRequestSender())
62+
new RemoteCheckoutRequestSender(requestSender)
6363
);
6464

6565
registry.register('afterpay', () =>
@@ -215,7 +215,7 @@ export default function createPaymentStrategyRegistry(
215215
new PaymentStrategyActionCreator(registry, orderActionCreator),
216216
paymentActionCreator,
217217
orderActionCreator,
218-
createBraintreeVisaCheckoutPaymentProcessor(scriptLoader),
218+
createBraintreeVisaCheckoutPaymentProcessor(scriptLoader, requestSender),
219219
new VisaCheckoutScriptLoader(scriptLoader)
220220
)
221221
);

src/payment/payment-action-creator.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { createRequestSender } from '@bigcommerce/request-sender';
12
import { Observable } from 'rxjs';
23

34
import { createCheckoutClient, createCheckoutStore, CheckoutClient, CheckoutStore, CheckoutValidator } from '../checkout';
@@ -21,7 +22,7 @@ describe('PaymentActionCreator', () => {
2122

2223
beforeEach(() => {
2324
store = createCheckoutStore(getCheckoutStoreStateWithOrder());
24-
client = createCheckoutClient();
25+
client = createCheckoutClient(createRequestSender());
2526
paymentRequestSender = new PaymentRequestSender(createPaymentClient(store));
2627

2728
jest.spyOn(client, 'loadOrder')

0 commit comments

Comments
 (0)