This is an automated email from the ASF dual-hosted git repository. diegopucci pushed a commit to branch chore/drill-to-detail-modal-tests in repository https://gitbox.apache.org/repos/asf/superset.git
commit 1d72d095abc3dfdcdd848a13e31efba900f3be2e Author: geido <[email protected]> AuthorDate: Tue Aug 16 20:18:10 2022 +0300 Lint --- .../src/components/Chart/DrillDetailModal.test.tsx | 48 ++++++----- .../DrillDetailPane/DrillDetailPane.test.tsx | 96 +++++++++++----------- 2 files changed, 74 insertions(+), 70 deletions(-) diff --git a/superset-frontend/src/components/Chart/DrillDetailModal.test.tsx b/superset-frontend/src/components/Chart/DrillDetailModal.test.tsx index 81ead96438..20f319ce4f 100644 --- a/superset-frontend/src/components/Chart/DrillDetailModal.test.tsx +++ b/superset-frontend/src/components/Chart/DrillDetailModal.test.tsx @@ -19,29 +19,29 @@ import React from 'react'; import { render, screen, waitFor } from 'spec/helpers/testing-library'; import { getMockStoreWithNativeFilters } from 'spec/fixtures/mockStore'; -import chartQueries, { sliceIdĀ } from 'spec/fixtures/mockChartQueries'; -import DrillDetailModal from './DrillDetailModal'; +import chartQueries, { sliceId } from 'spec/fixtures/mockChartQueries'; import { QueryFormData } from '@superset-ui/core'; import fetchMock from 'fetch-mock'; import userEvent from '@testing-library/user-event'; +import DrillDetailModal from './DrillDetailModal'; const chart = chartQueries[sliceId]; const setup = (overrides: Record<string, any> = {}) => { const store = getMockStoreWithNativeFilters(); const props = { - chartId: sliceId, - initialFilters: [], - formData: chart.form_data as unknown as QueryFormData, - ...overrides, -} - return render( - <DrillDetailModal {...props} />, { + chartId: sliceId, + initialFilters: [], + formData: chart.form_data as unknown as QueryFormData, + ...overrides, + }; + return render(<DrillDetailModal {...props} />, { useRedux: true, useRouter: true, - store + store, }); }; -const waitForRender = (overrides: Record<string, any> = {}) => waitFor(() => setup(overrides)); +const waitForRender = (overrides: Record<string, any> = {}) => + waitFor(() => setup(overrides)); fetchMock.post( 'end:/datasource/samples?force=false&datasource_type=table&datasource_id=7&per_page=50&page=1', @@ -69,36 +69,42 @@ test('should render', async () => { test('should render the title', async () => { await waitForRender(); - expect(screen.getByText(`Drill to detail: ${chart.form_data.slice_name}`)).toBeInTheDocument(); + expect( + screen.getByText(`Drill to detail: ${chart.form_data.slice_name}`), + ).toBeInTheDocument(); }); test('should render the modal', async () => { await waitForRender(); - expect(screen.getByRole("dialog")).toBeInTheDocument(); + expect(screen.getByRole('dialog')).toBeInTheDocument(); }); test('should not render the modal', async () => { await waitForRender({ initialFilters: undefined, }); - expect(screen.queryByRole("dialog")).not.toBeInTheDocument(); + expect(screen.queryByRole('dialog')).not.toBeInTheDocument(); }); test('should render the button', async () => { await waitForRender(); - expect(screen.getByRole("button", {name: "Edit chart"})).toBeInTheDocument(); - expect(screen.getAllByRole("button", {name: "Close"})).toHaveLength(2); + expect( + screen.getByRole('button', { name: 'Edit chart' }), + ).toBeInTheDocument(); + expect(screen.getAllByRole('button', { name: 'Close' })).toHaveLength(2); }); test('should close the modal', async () => { await waitForRender(); - expect(screen.getByRole("dialog")).toBeInTheDocument(); - userEvent.click(screen.getAllByRole("button", {name: "Close"})[1]); - expect(screen.queryByRole("dialog")).not.toBeInTheDocument(); + expect(screen.getByRole('dialog')).toBeInTheDocument(); + userEvent.click(screen.getAllByRole('button', { name: 'Close' })[1]); + expect(screen.queryByRole('dialog')).not.toBeInTheDocument(); }); test('should forward to Explore', async () => { await waitForRender(); - userEvent.click(screen.getByRole("button", {name: "Edit chart"})); - expect(mockHistoryPush).toHaveBeenCalledWith(`/explore/?dashboard_page_id=&slice_id=${sliceId}`); + userEvent.click(screen.getByRole('button', { name: 'Edit chart' })); + expect(mockHistoryPush).toHaveBeenCalledWith( + `/explore/?dashboard_page_id=&slice_id=${sliceId}`, + ); }); diff --git a/superset-frontend/src/dashboard/components/DrillDetailPane/DrillDetailPane.test.tsx b/superset-frontend/src/dashboard/components/DrillDetailPane/DrillDetailPane.test.tsx index 7a89af5850..a65d469fb0 100644 --- a/superset-frontend/src/dashboard/components/DrillDetailPane/DrillDetailPane.test.tsx +++ b/superset-frontend/src/dashboard/components/DrillDetailPane/DrillDetailPane.test.tsx @@ -19,73 +19,63 @@ import React from 'react'; import { render, screen, waitFor } from 'spec/helpers/testing-library'; import { getMockStoreWithNativeFilters } from 'spec/fixtures/mockStore'; -import chartQueries, { sliceIdĀ } from 'spec/fixtures/mockChartQueries'; -import DrillDetailPane from './DrillDetailPane'; +import chartQueries, { sliceId } from 'spec/fixtures/mockChartQueries'; import { QueryFormData, SupersetClient } from '@superset-ui/core'; import fetchMock from 'fetch-mock'; +import DrillDetailPane from './DrillDetailPane'; const chart = chartQueries[sliceId]; const setup = (overrides: Record<string, any> = {}) => { const store = getMockStoreWithNativeFilters(); const props = { - initialFilters: [], - formData: chart.form_data as unknown as QueryFormData, - ...overrides, -} - return render( - <DrillDetailPane {...props} />, { + initialFilters: [], + formData: chart.form_data as unknown as QueryFormData, + ...overrides, + }; + return render(<DrillDetailPane {...props} />, { useRedux: true, - store + store, }); }; -const waitForRender = (overrides: Record<string, any> = {}) => waitFor(() => setup(overrides)); -const samplesEndpoint = "end:/datasource/samples?force=false&datasource_type=table&datasource_id=7&per_page=50&page=1"; -const fetchWithNoData = () => fetchMock.post( - samplesEndpoint, - { +const waitForRender = (overrides: Record<string, any> = {}) => + waitFor(() => setup(overrides)); +const samplesEndpoint = + 'end:/datasource/samples?force=false&datasource_type=table&datasource_id=7&per_page=50&page=1'; +const fetchWithNoData = () => + fetchMock.post(samplesEndpoint, { result: { total_count: 0, data: [], colnames: [], coltypes: [], }, - }, -); -const fetchWithData = () => fetchMock.post( - samplesEndpoint, - { + }); +const fetchWithData = () => + fetchMock.post(samplesEndpoint, { result: { total_count: 3, data: [ { - "year": 1996, - "na_sales": 11.27, - "eu_sales": 8.89, + year: 1996, + na_sales: 11.27, + eu_sales: 8.89, }, { - "year": 1989, - "na_sales": 23.2, - "eu_sales": 2.26, + year: 1989, + na_sales: 23.2, + eu_sales: 2.26, }, { - "year": 1999, - "na_sales": 9, - "eu_sales": 6.18, + year: 1999, + na_sales: 9, + eu_sales: 6.18, }, - ], - colnames: [ - "year", - "na_sales", - "eu_sales", - ], - coltypes: [ - 0, - 0, - 0, - ], + ], + colnames: ['year', 'na_sales', 'eu_sales'], + coltypes: [0, 0, 0], }, }); - const SupersetClientPost = jest.spyOn(SupersetClient, 'post'); +const SupersetClientPost = jest.spyOn(SupersetClient, 'post'); afterEach(fetchMock.restore); @@ -99,28 +89,36 @@ test('should render the loading component', async () => { fetchWithData(); setup(); await waitFor(() => { - expect(screen.getByRole("status", {name: "Loading"})).toBeInTheDocument(); + expect(screen.getByRole('status', { name: 'Loading' })).toBeInTheDocument(); }); }); test('should render the table with results', async () => { fetchWithData(); await waitForRender(); - expect(screen.getByRole("table")).toBeInTheDocument(); - expect(screen.getAllByRole("row")).toHaveLength(4); - expect(screen.getByRole("columnheader", {name: "year"})).toBeInTheDocument(); - expect(screen.getByRole("columnheader", {name: "na_sales"})).toBeInTheDocument(); - expect(screen.getByRole("columnheader", {name: "eu_sales"})).toBeInTheDocument(); + expect(screen.getByRole('table')).toBeInTheDocument(); + expect(screen.getAllByRole('row')).toHaveLength(4); + expect( + screen.getByRole('columnheader', { name: 'year' }), + ).toBeInTheDocument(); + expect( + screen.getByRole('columnheader', { name: 'na_sales' }), + ).toBeInTheDocument(); + expect( + screen.getByRole('columnheader', { name: 'eu_sales' }), + ).toBeInTheDocument(); }); test('should render the "No results" components', async () => { fetchWithNoData(); setup(); - expect(await screen.findByText("No rows were returned for this dataset")).toBeInTheDocument(); + expect( + await screen.findByText('No rows were returned for this dataset'), + ).toBeInTheDocument(); }); test('should render the error', async () => { - SupersetClientPost.mockRejectedValue(new Error("Something went wrong")); + SupersetClientPost.mockRejectedValue(new Error('Something went wrong')); await waitForRender(); - expect(screen.getByText("Error: Something went wrong")).toBeInTheDocument(); + expect(screen.getByText('Error: Something went wrong')).toBeInTheDocument(); });
