woocommerce/plugins/woocommerce-admin/client/homescreen/activity-panel/test/index.js

65 lines
1.6 KiB
JavaScript
Raw Normal View History

/**
* External dependencies
*/
import { render, screen } from '@testing-library/react';
/**
* Internal dependencies
*/
import { ActivityPanel } from '../';
// Mock the panels.
jest.mock( '../panels', () => {
return {
getAllPanels: jest.fn().mockImplementation( () => [
{
id: 'custom-panel-1',
title: 'custom-panel-1',
count: 10000,
initialOpen: true,
panel: <span>Custom panel 1</span>,
collapsible: true,
},
{
id: 'custom-panel-2',
title: 'custom-panel-2',
count: 20000,
initialOpen: false,
panel: <span>Custom panel 2</span>,
collapsible: true,
},
] ),
};
} );
// Mock the orders and order statuses.
jest.mock( '../orders/utils', () => {
return {
Migrate Stock Panel to Homescreen (https://github.com/woocommerce/woocommerce-admin/pull/5729) * Refactor low stock variable to be the count instead of a boolean. * Add initial render of the Stock panel on the homescreen. * Move existing Stock panel to homescreen accordion. * Ensure int value for low stock product count. * Update ProductImage styling. * Update stock activity car styles. * Only show 5 low stock products. * Add "undo" action to the stock updated snackbar. * Fix check for explicit notice dismissal when taking actions. * Hide now-in-stock products after updating. By cllearing "edited" flag on successful update. * Fetch more products after updating stock. * Fix the number of product placeholders shown. * Only show products placeholders on the initial fetch. * Fix placeholder style. * Fetch low stock count dynamically. * Let initialOpen prop toggle Accordion panels if they haven't been toggled by the user. * Refactor item total count state. Allows for auto-updating item totals whenever identical queries (from a totals perspective) are issued. * Add last order date to low stock products API response. * Allow non-date strings in ActivityCard date prop. * Add last order date to stock panel cards. * Remove empty stock panel view. * Add test file for StockPanel. * Only request necessary fields from products endpoint. * Add test for products fetch after stock update. * Fix field name. * Add test for last order date in low stock products API response. * Stock panel should be initially closed. * Skip updating a product if the quantity is unchanged.
2020-11-25 18:51:15 +00:00
getLowStockCount: jest.fn().mockImplementation( () => 0 ),
getUnreadOrders: jest.fn().mockImplementation( () => 100 ),
getOrderStatuses: jest.fn().mockImplementation( () => [ 'status' ] ),
};
} );
describe( 'ActivityPanel', () => {
it( 'should render a panel with two rows', () => {
render( <ActivityPanel /> );
expect( screen.getByText( 'custom-panel-1' ) ).not.toBeNull();
expect( screen.getByText( 'custom-panel-2' ) ).not.toBeNull();
} );
it( 'should render one visible panel and one hidden panel', () => {
render( <ActivityPanel /> );
expect( screen.queryByText( 'Custom panel 1' ) ).toBeInTheDocument();
expect(
screen.queryByText( 'Custom panel 2' )
).not.toBeInTheDocument();
} );
it( 'should render the count of unread items', () => {
render( <ActivityPanel /> );
expect( screen.queryByText( '10000' ) ).toBeInTheDocument();
expect( screen.queryByText( '20000' ) ).toBeInTheDocument();
} );
} );