From a33b8493f743d469ae74df2932696ee5c50d9cb5 Mon Sep 17 00:00:00 2001 From: Alidev123 Date: Tue, 28 Jul 2020 10:18:48 -0400 Subject: [PATCH 1/3] added unit tests for bulk edit aps --- .../EditableCell/tests/index.test.js | 93 ++++++++++++++++++- .../EditableRow/tests/index.test.js | 39 ++++++++ .../BulkEditAPTable/tests/index.test.js | 45 +++++++++ 3 files changed, 173 insertions(+), 4 deletions(-) create mode 100644 src/components/BulkEditAccessPoints/components/BulkEditAPTable/components/EditableRow/tests/index.test.js create mode 100644 src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js diff --git a/src/components/BulkEditAccessPoints/components/BulkEditAPTable/components/EditableCell/tests/index.test.js b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/components/EditableCell/tests/index.test.js index d42dbb2..9822abb 100644 --- a/src/components/BulkEditAccessPoints/components/BulkEditAPTable/components/EditableCell/tests/index.test.js +++ b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/components/EditableCell/tests/index.test.js @@ -21,12 +21,23 @@ Object.defineProperty(window, 'matchMedia', { }); const mockProps = { - title: '', - editable: false, - dataIndex: '', - record: {}, + title: 'CHANNEL', + editable: true, + dataIndex: 'channel', + record: { + cellSize: [-90, -90, -90], + channel: [36, 6, 149], + clientDisconnectThreshold: [-90, -90, -90], + id: '1', + key: '1', + minLoad: [40, 40, 50], + name: 'AP 1', + probeResponseThreshold: [-90, -90, -90], + snrDrop: [30, 30, 20], + }, handleSave: () => {}, }; + describe('', () => { afterEach(cleanup); @@ -62,6 +73,8 @@ describe('', () => { }; const { getByTestId } = render(); const tableCell = getByTestId('bulkEditTableCell'); + const ENTER = { keyCode: 13 }; + fireEvent.keyDown(tableCell, ENTER); fireEvent.click(tableCell); const input = getByTestId('bulkEditFormInput'); fireEvent.change(input, { target: { value: '' } }); @@ -71,4 +84,76 @@ describe('', () => { expect(handleSaveSpy).not.toHaveBeenCalled(); }); }); + + it('handleSave should be called when input is valid and Enter key is pressed', async () => { + const handleSaveSpy = jest.fn(); + const EditableCellComp = () => { + const [form] = Form.useForm(); + return ( +
+ + + +
+ ); + }; + const { getByTestId } = render(); + + const tableCell = getByTestId('bulkEditTableCell'); + fireEvent.click(tableCell); + const input = getByTestId('bulkEditFormInput'); + expect(input).toBeInTheDocument(); + + fireEvent.change(input, { target: { value: '123' } }); + + await waitFor(() => { + expect(input.value).toBe('123'); + }); + const ENTER = { keyCode: 13 }; + fireEvent.keyDown(input, ENTER); + await waitFor(() => { + expect(handleSaveSpy).toHaveBeenCalled(); + }); + }); + + it('cell should not be editable when editable flag is false', async () => { + const EditableCellComp = () => { + const [form] = Form.useForm(); + return ( +
+ + + +
+ ); + }; + + render(); + }); + + it('cell should be Render When Props Not Provide', async () => { + const EditableCellComp = () => { + const [form] = Form.useForm(); + return ( +
+ + + +
+ ); + }; + + const { getByTestId } = render(); + const tableCell = getByTestId('bulkEditTableCell'); + fireEvent.click(tableCell); + const input = getByTestId('bulkEditFormInput'); + expect(input).toBeInTheDocument(); + + fireEvent.change(input, { target: { value: '123' } }); + await waitFor(() => { + expect(input.value).toBe('123'); + }); + const ENTER = { keyCode: 13 }; + fireEvent.keyDown(input, ENTER); + }); }); diff --git a/src/components/BulkEditAccessPoints/components/BulkEditAPTable/components/EditableRow/tests/index.test.js b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/components/EditableRow/tests/index.test.js new file mode 100644 index 0000000..22d4f17 --- /dev/null +++ b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/components/EditableRow/tests/index.test.js @@ -0,0 +1,39 @@ +import React from 'react'; +import '@testing-library/jest-dom/extend-expect'; +import { render } from 'tests/utils'; +import { Form } from 'antd'; +import { EditableRow, EditableContext } from '..'; + +Object.defineProperty(window, 'matchMedia', { + writable: true, + value: jest.fn().mockImplementation(query => ({ + matches: false, + media: query, + onchange: null, + addListener: jest.fn(), // deprecated + removeListener: jest.fn(), // deprecated + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + })), +}); + +const mockProps = { + index: 0, +}; + +describe('', () => { + it('Should work with default props', () => { + const EditableRowComp = () => { + const [form] = Form.useForm(); + return ( +
+ + + +
+ ); + }; + render(); + }); +}); diff --git a/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js new file mode 100644 index 0000000..edb1352 --- /dev/null +++ b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js @@ -0,0 +1,45 @@ +import React from 'react'; +import '@testing-library/jest-dom/extend-expect'; +import { render } from 'tests/utils'; +import BulkEditAPTable from '..'; + +Object.defineProperty(window, 'matchMedia', { + writable: true, + value: jest.fn().mockImplementation(query => ({ + matches: false, + media: query, + onchange: null, + addListener: jest.fn(), // deprecated + removeListener: jest.fn(), // deprecated + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + })), +}); + +const mockProps = { + tableColumns: [ + { dataIndex: 'name', editable: true, key: 'name', title: 'NAME' }, + { dataIndex: 'name', editable: false, key: 'name', title: 'NAME' }, + ], + tableData: [{ key: '1', id: '1', name: 'AP 1', channel: [25, 23, 61] }], + onEditedRows: jest.fn(), + onLoadMore: jest.fn(), + isLastPage: false, + resetEditedRows: jest.fn(), +}; + +describe('', () => { + it('Should work with default props', () => { + const BulkEditAPTableComp = () => { + return ; + }; + render(); + }); + // it('Should work with default props', () => { + // const BulkEditAPTableComp = () => { + // return ; + // }; + // const {}= render(); + // }); +}); From 7becd884898e4b1a322c69953619f44273937f9d Mon Sep 17 00:00:00 2001 From: Alidev123 Date: Tue, 28 Jul 2020 13:56:23 -0400 Subject: [PATCH 2/3] updated units tests for bulk update aps componets --- .../BulkEditAPTable/tests/index.test.js | 53 +++++++++++++++---- .../BulkEditAccessPoints/tests/index.test.js | 4 ++ 2 files changed, 47 insertions(+), 10 deletions(-) diff --git a/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js index edb1352..157c827 100644 --- a/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js +++ b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js @@ -1,5 +1,8 @@ -import React from 'react'; import '@testing-library/jest-dom/extend-expect'; + +import { cleanup, fireEvent, waitFor } from '@testing-library/react'; + +import React from 'react'; import { render } from 'tests/utils'; import BulkEditAPTable from '..'; @@ -20,26 +23,56 @@ Object.defineProperty(window, 'matchMedia', { const mockProps = { tableColumns: [ { dataIndex: 'name', editable: true, key: 'name', title: 'NAME' }, - { dataIndex: 'name', editable: false, key: 'name', title: 'NAME' }, + { dataIndex: 'name', editable: false, key: 'name', title: 'NAME-1' }, + ], + tableData: [ + { + key: '1', + id: '1', + name: 'AP 1', + channel: [25, 23, 61], + cellSize: [-90, -90, -90], + clientDisconnectThreshold: [-90, -90, -90], + probeResponseThreshold: [-90, -90, -90], + minLoad: [50, 40, 40], + snrDrop: [20, 30, 30], + }, ], - tableData: [{ key: '1', id: '1', name: 'AP 1', channel: [25, 23, 61] }], onEditedRows: jest.fn(), onLoadMore: jest.fn(), isLastPage: false, - resetEditedRows: jest.fn(), + resetEditedRows: false, }; describe('', () => { + afterEach(cleanup); it('Should work with default props', () => { const BulkEditAPTableComp = () => { return ; }; render(); }); - // it('Should work with default props', () => { - // const BulkEditAPTableComp = () => { - // return ; - // }; - // const {}= render(); - // }); + + it('Should work with default props', async () => { + const BulkEditAPTableComp = () => { + return ; + }; + const { getByTestId } = render(); + const tableCell = getByTestId('bulkEditTableCell'); + fireEvent.click(tableCell); + const input = getByTestId('bulkEditFormInput'); + fireEvent.click(input); + + const ENTER = { keyCode: 13 }; + fireEvent.keyDown(input, ENTER); + + await waitFor(() => expect(getByTestId('bulkEditTableCell')).toBeInTheDocument()); + const newTableCell = getByTestId('bulkEditTableCell'); + fireEvent.click(newTableCell); + const newInput = getByTestId('bulkEditFormInput'); + fireEvent.click(newInput); + + fireEvent.keyDown(newInput, ENTER); + await waitFor(() => expect(getByTestId('bulkEditTableCell')).toBeInTheDocument()); + }); }); diff --git a/src/components/BulkEditAccessPoints/tests/index.test.js b/src/components/BulkEditAccessPoints/tests/index.test.js index 10b31b1..5491062 100644 --- a/src/components/BulkEditAccessPoints/tests/index.test.js +++ b/src/components/BulkEditAccessPoints/tests/index.test.js @@ -25,6 +25,10 @@ const mockProps = { onSaveChanges: () => {}, onLoadMore: () => {}, isLastPage: true, + breadcrumbPath: [ + { id: 2, name: 'Menlo Park' }, + { id: 8, name: 'Ottawa' }, + ], }; describe('', () => { afterEach(cleanup); From 7e2a7f06e3475043fa281aa38e1cfb9dd0f64177 Mon Sep 17 00:00:00 2001 From: Alidev123 Date: Tue, 28 Jul 2020 14:14:00 -0400 Subject: [PATCH 3/3] updated messages for units tests in bulk update components --- .../components/BulkEditAPTable/tests/index.test.js | 2 +- src/components/BulkEditAccessPoints/tests/index.test.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js index 157c827..22861f3 100644 --- a/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js +++ b/src/components/BulkEditAccessPoints/components/BulkEditAPTable/tests/index.test.js @@ -53,7 +53,7 @@ describe('', () => { render(); }); - it('Should work with default props', async () => { + it('Should work when a single table cell is edited multiple times', async () => { const BulkEditAPTableComp = () => { return ; }; diff --git a/src/components/BulkEditAccessPoints/tests/index.test.js b/src/components/BulkEditAccessPoints/tests/index.test.js index 5491062..b62726d 100644 --- a/src/components/BulkEditAccessPoints/tests/index.test.js +++ b/src/components/BulkEditAccessPoints/tests/index.test.js @@ -73,7 +73,7 @@ describe('', () => { expect(getByRole('button', { name: 'Load More' })).toBeVisible(); }); - it('onLoadMore should be called when ', async () => { + it('onLoadMore should be called when Load More button is clicked', async () => { const submitSpy = jest.fn(); const { getByRole } = render(