/** * External dependencies */ import { render, screen } from '@testing-library/react'; import { registerCheckoutFilters } from '@woocommerce/blocks-checkout'; /** * Internal dependencies */ import Block from '../block'; describe( 'Proceed to checkout block', () => { it( 'allows the text to be filtered', () => { registerCheckoutFilters( 'test-extension', { proceedToCheckoutButtonLabel: () => { return 'Proceed to step two'; }, } ); render( ); expect( screen.getByText( 'Proceed to step two' ) ).toBeInTheDocument(); } ); it( 'allows the link to be filtered', () => { registerCheckoutFilters( 'test-extension', { proceedToCheckoutButtonLink: () => { return 'https://woocommerce.com'; }, } ); render( ); const button = screen.getByText( 'Proceed to Checkout' ); const link = button.closest( 'a' ); expect( link?.href ).toBe( 'https://woocommerce.com/' ); } ); it( 'does not allow incorrect types to be applied to either button label or button link', () => { registerCheckoutFilters( 'test-extension', { proceedToCheckoutButtonLabel: () => { return 123; }, proceedToCheckoutButtonLink: () => { return 123; }, } ); render( ); //@todo When https://github.com/WordPress/gutenberg/issues/22850 is complete use that new matcher here for more specific error message assertion. expect( console ).toHaveErrored(); } ); } );