22/**
33 * External dependencies
44 */
5- import React , { ReactNode } from 'react' ;
5+ import React from 'react' ;
66import { render , screen , within } from '@testing-library/react' ;
77import userEvent from '@testing-library/user-event' ;
8+ import { act } from 'react-dom/test-utils' ;
89
910/**
1011 * Internal dependencies
1112 */
1213import PaymentMethodsCheckboxes from '..' ;
1314import PaymentMethodsCheckbox from '../payment-method-checkbox' ;
1415import { upeCapabilityStatuses } from '../../../additional-methods-setup/constants' ;
15- import { act } from 'react-dom/test-utils ' ;
16+ import WCPaySettingsContext from 'wcpay/settings/wcpay-settings-context ' ;
1617
1718jest . mock ( '@woocommerce/components' , ( ) => {
1819 return {
19- Pill : ( {
20- className,
21- children,
22- } : {
23- className : string ;
24- children : ReactNode ;
25- } ) : React . ReactElement => (
20+ Pill : ( { className, children } ) => (
2621 < span className = { className } > { children } </ span >
2722 ) ,
2823 } ;
2924} ) ;
3025
26+ const renderWithSettingsProvider = ( ui ) =>
27+ render (
28+ < WCPaySettingsContext . Provider value = { global . wcpaySettings } >
29+ { ui }
30+ </ WCPaySettingsContext . Provider >
31+ ) ;
32+
3133describe ( 'PaymentMethodsCheckboxes' , ( ) => {
34+ beforeEach ( ( ) => {
35+ global . wcpaySettings = {
36+ accountFees : { } ,
37+ } ;
38+ } ) ;
39+
3240 it ( 'triggers the onChange when clicking the checkbox' , ( ) => {
3341 const handleChange = jest . fn ( ) ;
3442
@@ -40,14 +48,14 @@ describe( 'PaymentMethodsCheckboxes', () => {
4048 [ 'sepa_debit' , false ] ,
4149 ] ;
4250
43- render (
51+ renderWithSettingsProvider (
4452 < PaymentMethodsCheckboxes >
45- { upeMethods . map ( ( key ) => (
53+ { upeMethods . map ( ( [ name , checked ] ) => (
4654 < PaymentMethodsCheckbox
47- key = { key [ 0 ] as React . Key }
55+ key = { name }
4856 onChange = { handleChange }
49- checked = { key [ 1 ] as boolean }
50- name = { key [ 0 ] as string }
57+ checked = { checked }
58+ name = { name }
5159 status = { upeCapabilityStatuses . ACTIVE }
5260 fees = { '' }
5361 required = { false }
@@ -95,7 +103,7 @@ describe( 'PaymentMethodsCheckboxes', () => {
95103
96104 it ( 'can click the checkbox on payment methods with pending statuses' , ( ) => {
97105 const handleChange = jest . fn ( ) ;
98- render (
106+ renderWithSettingsProvider (
99107 < PaymentMethodsCheckboxes >
100108 < PaymentMethodsCheckbox
101109 key = { 'ideal' }
@@ -126,7 +134,7 @@ describe( 'PaymentMethodsCheckboxes', () => {
126134
127135 it ( 'shows the required label on payment methods which are required' , ( ) => {
128136 const handleChange = jest . fn ( ) ;
129- const page = render (
137+ const page = renderWithSettingsProvider (
130138 < PaymentMethodsCheckboxes >
131139 < PaymentMethodsCheckbox
132140 key = { 'card' }
@@ -148,7 +156,7 @@ describe( 'PaymentMethodsCheckboxes', () => {
148156
149157 it ( 'shows the disabled notice pill on payment methods with disabled statuses' , ( ) => {
150158 const handleChange = jest . fn ( ) ;
151- const page = render (
159+ const page = renderWithSettingsProvider (
152160 < PaymentMethodsCheckboxes >
153161 < PaymentMethodsCheckbox
154162 key = { 'ideal' }
@@ -170,7 +178,7 @@ describe( 'PaymentMethodsCheckboxes', () => {
170178
171179 it ( 'can not click the payment methods checkbox that are locked' , ( ) => {
172180 const handleChange = jest . fn ( ) ;
173- render (
181+ renderWithSettingsProvider (
174182 < PaymentMethodsCheckboxes >
175183 < PaymentMethodsCheckbox
176184 key = { 'card' }
@@ -195,7 +203,7 @@ describe( 'PaymentMethodsCheckboxes', () => {
195203
196204 it ( 'can not click the payment methods checkbox with disabled statuses' , ( ) => {
197205 const handleChange = jest . fn ( ) ;
198- render (
206+ renderWithSettingsProvider (
199207 < PaymentMethodsCheckboxes >
200208 < PaymentMethodsCheckbox
201209 key = { 'ideal' }
@@ -220,7 +228,7 @@ describe( 'PaymentMethodsCheckboxes', () => {
220228
221229 it ( "doesn't show the disabled notice pill on payment methods with active and unrequested statuses" , ( ) => {
222230 const handleChange = jest . fn ( ) ;
223- render (
231+ renderWithSettingsProvider (
224232 < PaymentMethodsCheckboxes >
225233 < PaymentMethodsCheckbox
226234 key = { 'ideal' }
0 commit comments