From fe25fb0f1d740acba95cdeee594591f0bc3a6834 Mon Sep 17 00:00:00 2001 From: Likhith Kolayari <98398322+likhith-deriv@users.noreply.github.com> Date: Mon, 14 Mar 2022 08:26:00 +0400 Subject: [PATCH] Added test cases to order and order-table (#4916) --- packages/p2p/jest.config.js | 4 +- .../components/orders/__test__/orders.spec.js | 64 +++++++++++++++++++ .../order-table/__test__/order-table.spec.js | 29 +++++++++ 3 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 packages/p2p/src/components/orders/__test__/orders.spec.js create mode 100644 packages/p2p/src/components/orders/order-table/__test__/order-table.spec.js diff --git a/packages/p2p/jest.config.js b/packages/p2p/jest.config.js index 4736a30f8a0e..9ed62e62abf4 100644 --- a/packages/p2p/jest.config.js +++ b/packages/p2p/jest.config.js @@ -4,8 +4,8 @@ module.exports = { ...baseConfigForPackages, clearMocks: true, moduleNameMapper: { - "\\.s(c|a)ss$": "/../../__mocks__/styleMock.js", - "^.+\\.svg$": "/../../__mocks__/styleMock.js", + '\\.s(c|a)ss$': '/../../__mocks__/styleMock.js', + '^.+\\.svg$': '/../../__mocks__/styleMock.js', '^Assets/(.*)$': '/src/assets/$1', '^Components/(.*)$': '/src/components/$1', '^Constants/(.*)$': '/src/constants/$1', diff --git a/packages/p2p/src/components/orders/__test__/orders.spec.js b/packages/p2p/src/components/orders/__test__/orders.spec.js new file mode 100644 index 000000000000..d8739ce31e9f --- /dev/null +++ b/packages/p2p/src/components/orders/__test__/orders.spec.js @@ -0,0 +1,64 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import { useStores } from 'Stores'; +import { useSafeState } from '@deriv/components'; +import Orders from '../orders.jsx'; + +jest.mock('Stores', () => ({ + ...jest.requireActual('Stores'), + + useStores: jest.fn().mockReturnValue({ + order_store: { + order_id: null, + onOrderIdUpdate: jest.fn(), + orders: [], + onOrdersUpdate: jest.fn(), + onUnmount: jest.fn(), + setForceRerenderOrders: jest.fn(), + }, + }), +})); + +jest.mock('@deriv/components', () => ({ + ...jest.requireActual('@deriv/components'), + useSafeState: jest.fn().mockReturnValue([{}, jest.fn()]), +})); + +jest.mock('Components/orders/order-table/order-table.jsx', () => jest.fn(() =>
Order Table
)); + +jest.mock('Components/order-details/order-details.jsx', () => jest.fn(() =>
Order Details
)); + +describe('', () => { + it('should invoke setup methods on component load', () => { + const { order_store } = useStores(); + const [, forceRerender] = useSafeState(); + render(); + + expect(order_store.setForceRerenderOrders).toHaveBeenCalledWith(forceRerender); + expect(order_store.onOrderIdUpdate).toHaveBeenCalled(); + expect(order_store.onOrdersUpdate).toHaveBeenCalled(); + }); + + it('should list all orders via Order table component', () => { + render(); + + expect(screen.getByText('Order Table')).toBeInTheDocument(); + }); + + it('should display the order details for a particular ', () => { + useStores.mockImplementation(() => ({ + order_store: { + order_id: null, + onOrderIdUpdate: jest.fn(), + orders: [], + onOrdersUpdate: jest.fn(), + onUnmount: jest.fn(), + setForceRerenderOrders: jest.fn(), + order_information: 'test', + }, + })); + render(); + + expect(screen.getByText('Order Details')).toBeInTheDocument(); + }); +}); diff --git a/packages/p2p/src/components/orders/order-table/__test__/order-table.spec.js b/packages/p2p/src/components/orders/order-table/__test__/order-table.spec.js new file mode 100644 index 000000000000..6b00e30f5822 --- /dev/null +++ b/packages/p2p/src/components/orders/order-table/__test__/order-table.spec.js @@ -0,0 +1,29 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import OrderTable from '../order-table.jsx'; + +jest.mock('Stores', () => ({ + ...jest.requireActual('Stores'), + useStores: jest.fn().mockReturnValue({ + general_store: { + active_notification_count: 0, + inactive_notification_count: 0, + order_table_type: false, + }, + }), +})); + +jest.mock('Components/misc/toggle-container.jsx', () => jest.fn(() =>
Toggle
)); +jest.mock('Components/orders/order-table/order-table-content.jsx', () => jest.fn(() =>
Order Table Content
)); + +jest.mock('@deriv/components', () => ({ + ...jest.requireActual('@deriv/components'), + ButtonToggle: jest.fn(() =>
Toggle Button
), +})); + +describe('', () => { + it('should pass the values into OrderTableContent', () => { + render(); + expect(screen.getByText('Order Table Content')).toBeInTheDocument(); + }); +});