diff --git a/packages/hydrogen/src/components/AddToCartButton/tests/AddToCart.vitest.tsx b/packages/hydrogen/src/components/AddToCartButton/tests/AddToCart.vitest.tsx
index aceb376d52..3419ee3909 100644
--- a/packages/hydrogen/src/components/AddToCartButton/tests/AddToCart.vitest.tsx
+++ b/packages/hydrogen/src/components/AddToCartButton/tests/AddToCart.vitest.tsx
@@ -55,7 +55,7 @@ describe('AddToCartButton', () => {
}
);
- expect(screen.getByRole('button')).toHaveAttribute('class', 'bg-blue-600');
+ expect(screen.getByRole('button')).toHaveClass('bg-blue-600');
});
describe('when variantId is set explicity', () => {
@@ -69,7 +69,7 @@ describe('AddToCartButton', () => {
{wrapper: CartTestProviders}
);
- expect(screen.getByRole('button')).toHaveAttribute('disabled', '');
+ expect(screen.getByRole('button')).toBeDisabled();
});
it('calls linesAdd with the variantId', async () => {
@@ -226,7 +226,7 @@ describe('AddToCartButton', () => {
await user.click(screen.getByRole('button'));
- expect(screen.getByRole('alert').textContent).toBe(
+ expect(screen.getByRole('alert')).toHaveTextContent(
'Adding product to your cart'
);
});
diff --git a/packages/hydrogen/src/components/BaseButton/tests/BaseButton.test.tsx b/packages/hydrogen/src/components/BaseButton/tests/BaseButton.test.tsx
deleted file mode 100644
index 58bb8f8317..0000000000
--- a/packages/hydrogen/src/components/BaseButton/tests/BaseButton.test.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import React from 'react';
-import {mountWithProviders} from '../../../utilities/tests/shopifyMount.js';
-import {BaseButton} from '../BaseButton.client.js';
-
-describe('BaseButton', () => {
- afterEach(() => {
- jest.clearAllMocks();
- });
-
- it('renders a button', () => {
- const component = mountWithProviders(Base Button);
-
- expect(component).toContainReactComponent('button', {
- children: 'Base Button',
- });
- });
-
- it('allows passthrough props', () => {
- const component = mountWithProviders(
- Base Button
- );
-
- expect(component.find('button')).toHaveReactProps({
- className: 'bg-blue-600',
- });
- });
-
- describe('given an on click event handler', () => {
- it('calls the on click event handler', () => {
- const mockOnClick = jest.fn();
- const mouseEvent = new MouseEvent('click', {cancelable: true});
-
- const component = mountWithProviders(
- Base Button
- );
-
- component.find('button')?.trigger('onClick', mouseEvent);
-
- expect(mockOnClick).toBeCalledWith(mouseEvent);
- });
-
- it('calls the given default on click behaviour', () => {
- const mockDefaultOnClick = jest.fn();
- const mouseEvent = new MouseEvent('click', {cancelable: true});
-
- const component = mountWithProviders(
- {}} defaultOnClick={mockDefaultOnClick}>
- Base Button
-
- );
-
- component.find('button')?.trigger('onClick', mouseEvent);
-
- expect(mockDefaultOnClick).toBeCalledWith(mouseEvent);
- });
-
- describe('and event preventDefault is called', () => {
- it('calls the on click event handler without calling the default on click behaviour', () => {
- const mockOnClick = jest.fn((event) => {
- event.preventDefault();
- });
- const mockDefaultOnClick = jest.fn();
- const mouseEvent = new MouseEvent('click', {cancelable: true});
-
- const component = mountWithProviders(
-
- Base Button
-
- );
-
- component.find('button')?.trigger('onClick', mouseEvent);
-
- expect(mockOnClick).toHaveBeenCalledWith(mouseEvent);
- expect(mockDefaultOnClick).not.toBeCalled();
- });
- });
-
- describe('and the on click handler returns false', () => {
- it('calls the on click event handler without calling the default on click behaviour', () => {
- const mockOnClick = jest.fn(() => false);
- const mockDefaultOnClick = jest.fn();
- const mouseEvent = new MouseEvent('click', {cancelable: true});
-
- const component = mountWithProviders(
-
- Base Button
-
- );
-
- component.find('button')?.trigger('onClick', mouseEvent);
-
- expect(mockOnClick).toBeCalledWith(mouseEvent);
- expect(mockDefaultOnClick).not.toBeCalled();
- });
- });
- });
-});
diff --git a/packages/hydrogen/src/components/BaseButton/tests/BaseButton.vitest.tsx b/packages/hydrogen/src/components/BaseButton/tests/BaseButton.vitest.tsx
new file mode 100644
index 0000000000..848b6518ae
--- /dev/null
+++ b/packages/hydrogen/src/components/BaseButton/tests/BaseButton.vitest.tsx
@@ -0,0 +1,103 @@
+import React from 'react';
+import {ShopifyTestProviders} from '../../../utilities/tests/provider-helpers.js';
+import {render, screen} from '@testing-library/react';
+import {BaseButton} from '../BaseButton.client.js';
+import {vi} from 'vitest';
+import userEvent from '@testing-library/user-event';
+
+describe('BaseButton', () => {
+ it('renders a button', () => {
+ render(Base Button, {
+ wrapper: ShopifyTestProviders,
+ });
+
+ expect(screen.getByRole('button')).toHaveTextContent('Base Button');
+ });
+
+ it('allows passthrough props', () => {
+ render(Base Button, {
+ wrapper: ShopifyTestProviders,
+ });
+
+ expect(screen.getByRole('button')).toHaveClass('bg-blue-600');
+ });
+
+ describe('given an on click event handler', () => {
+ it('calls the on click event handler', async () => {
+ const mockOnClick = vi.fn();
+ const user = userEvent.setup();
+
+ render(Base Button, {
+ wrapper: ShopifyTestProviders,
+ });
+
+ await user.click(screen.getByRole('button'));
+
+ expect(mockOnClick).toBeCalled();
+ });
+
+ it('calls the given default on click behaviour', async () => {
+ const mockDefaultOnClick = vi.fn();
+ const user = userEvent.setup();
+
+ render(
+ {}} defaultOnClick={mockDefaultOnClick}>
+ Base Button
+ ,
+ {
+ wrapper: ShopifyTestProviders,
+ }
+ );
+
+ await user.click(screen.getByRole('button'));
+
+ expect(mockDefaultOnClick).toBeCalled();
+ });
+
+ describe('and event preventDefault is called', () => {
+ it('calls the on click event handler without calling the default on click behaviour', async () => {
+ const mockOnClick = vi.fn((event) => {
+ event.preventDefault();
+ });
+ const mockDefaultOnClick = vi.fn();
+ const user = userEvent.setup();
+
+ render(
+
+ Base Button
+ ,
+ {
+ wrapper: ShopifyTestProviders,
+ }
+ );
+
+ await user.click(screen.getByRole('button'));
+
+ expect(mockOnClick).toBeCalled();
+ expect(mockDefaultOnClick).not.toBeCalled();
+ });
+ });
+
+ describe('and the on click handler returns false', () => {
+ it('calls the on click event handler without calling the default on click behaviour', async () => {
+ const mockOnClick = vi.fn(() => false);
+ const mockDefaultOnClick = vi.fn();
+ const user = userEvent.setup();
+
+ render(
+
+ Base Button
+ ,
+ {
+ wrapper: ShopifyTestProviders,
+ }
+ );
+
+ await user.click(screen.getByRole('button'));
+
+ expect(mockOnClick).toBeCalled();
+ expect(mockDefaultOnClick).not.toBeCalled();
+ });
+ });
+ });
+});