diff --git a/src/tests/unit/tests/DetailsView/components/__snapshots__/details-view-command-bar.test.tsx.snap b/src/tests/unit/tests/DetailsView/components/__snapshots__/details-view-command-bar.test.tsx.snap index 53e138f239..08d5980d6b 100644 --- a/src/tests/unit/tests/DetailsView/components/__snapshots__/details-view-command-bar.test.tsx.snap +++ b/src/tests/unit/tests/DetailsView/components/__snapshots__/details-view-command-bar.test.tsx.snap @@ -1,5 +1,2656 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`DetailsViewCommandBar Button focus render statover component 1`] = ` +{ + "asFragment": [Function], + "baseElement": +
+
+
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+ + + + +
+
+ , + "container":
+
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+ + + + +
+
, + "debug": [Function], + "findAllByAltText": [Function], + "findAllByDisplayValue": [Function], + "findAllByLabelText": [Function], + "findAllByPlaceholderText": [Function], + "findAllByRole": [Function], + "findAllByTestId": [Function], + "findAllByText": [Function], + "findAllByTitle": [Function], + "findByAltText": [Function], + "findByDisplayValue": [Function], + "findByLabelText": [Function], + "findByPlaceholderText": [Function], + "findByRole": [Function], + "findByTestId": [Function], + "findByText": [Function], + "findByTitle": [Function], + "getAllByAltText": [Function], + "getAllByDisplayValue": [Function], + "getAllByLabelText": [Function], + "getAllByPlaceholderText": [Function], + "getAllByRole": [Function], + "getAllByTestId": [Function], + "getAllByText": [Function], + "getAllByTitle": [Function], + "getByAltText": [Function], + "getByDisplayValue": [Function], + "getByLabelText": [Function], + "getByPlaceholderText": [Function], + "getByRole": [Function], + "getByTestId": [Function], + "getByText": [Function], + "getByTitle": [Function], + "queryAllByAltText": [Function], + "queryAllByDisplayValue": [Function], + "queryAllByLabelText": [Function], + "queryAllByPlaceholderText": [Function], + "queryAllByRole": [Function], + "queryAllByTestId": [Function], + "queryAllByText": [Function], + "queryAllByTitle": [Function], + "queryByAltText": [Function], + "queryByDisplayValue": [Function], + "queryByLabelText": [Function], + "queryByPlaceholderText": [Function], + "queryByRole": [Function], + "queryByTestId": [Function], + "queryByText": [Function], + "queryByTitle": [Function], + "rerender": [Function], + "unmount": [Function], +} +`; + +exports[`DetailsViewCommandBar renders invalid load assessment dialog: invalid load assessment dialog hidden 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ + +
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders invalid load assessment dialog: invalid load assessment dialog open 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ + +
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders load assessment dialog: load assessment dialog hidden 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ + +
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders load assessment dialog: load assessment dialog open 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ + +
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders report export dialog: export dialog hidden 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ +
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders report export dialog: export dialog open 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ +
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders save assessment dialog: Save assessment dialog open 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ + + + + + Save assessment + +
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders save assessment dialog: save assessment dialog hidden 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ + + + + + Save assessment + +
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders start assessment over dialog: start assessment over dialog hidden 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ +
+ +
+
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders start assessment over dialog: start assessment over dialog open 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ +
+ +
+
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders start test over dialog: start test over dialog hidden 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ +
+ +
+
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders start test over dialog: start test over dialog open 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ +
+ +
+
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders transfer to assessment dialog: transfer to assessment dialog hidden 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ +
+ Transfer to assessment stub +
+
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders transfer to assessment dialog: transfer to assessment dialog open 1`] = ` + +
+
+ + Target page:  + + + + command-bar-test-tab-title + + +
+
+ +
+ Transfer to assessment stub +
+
+ + + + + + +
+
+`; + +exports[`DetailsViewCommandBar renders with buttons 1`] = ``; + +exports[`DetailsViewCommandBar renders with buttons : CommandBarButtonsMenu props 1`] = `undefined`; + exports[`DetailsViewCommandBar renders with buttons collapsed into a menu 1`] = `
`; +exports[`DetailsViewCommandBar renders with buttons collapsed into a menu: CommandBarButtonsMenu props 1`] = ` +{ + "buttonRef": [Function], + "getStartOverMenuItem": [Function], + "loadAssessmentButton": undefined, + "renderExportReportButton": [Function], + "saveAssessmentButton": undefined, + "transferToAssessmentButton": undefined, +} +`; + exports[`DetailsViewCommandBar renders with export button and start over 1`] = `
{ mockReactComponents([ ReportExportButton, + SaveAssessmentButton, LoadAssessmentDialog, StartOverDialog, + SaveAssessmentDialog, CommandBarButtonsMenu, InvalidLoadAssessmentDialog, NewTabLinkWithTooltip, ReportExportButton, ExportDialog, QuickAssessToAssessmentDialog, + LoadAssessmentButton, ]); const thePageTitle = 'command-bar-test-tab-title'; const thePageUrl = 'command-bar-test-url'; @@ -125,6 +136,7 @@ describe('DetailsViewCommandBar', () => { let fileURLProviderMock: IMock; let loadAssessmentHelper: LoadAssessmentHelper; let assessmentDataParser: AssessmentDataParser; + let assessmentDataFormatter: AssessmentDataFormatter; const urlParser: UrlParser = new UrlParser(); let dataTransferViewControllerMock: IMock; const reportExportServiceProvider: ReportExportServiceProvider = @@ -144,7 +156,9 @@ describe('DetailsViewCommandBar', () => { _prevTargetPageData, _newTargetPageId, ) => { - if (toggleLoad) toggleLoadAssessmentDialog(); + if (toggleLoad) { + toggleLoadAssessmentDialog(); + } if (toggleInvalidLoad) toggleInvalidLoadAssessmentDialog(); }, } as LoadAssessmentHelper; @@ -160,6 +174,7 @@ describe('DetailsViewCommandBar', () => { getStartOverComponentMock = Mock.ofInstance(props => null); fileURLProviderMock = Mock.ofType(FileURLProvider); assessmentDataParser = new AssessmentDataParser(); + assessmentDataFormatter = new AssessmentDataFormatter(); loadAssessmentDataValidator = new LoadAssessmentDataValidator( Assessments, featureFlagStoreData, @@ -261,6 +276,7 @@ describe('DetailsViewCommandBar', () => { fileURLProvider: fileURLProviderMock.object, loadAssessmentHelper: loadAssessmentHelper, assessmentDataParser: assessmentDataParser, + assessmentDataFormatter: assessmentDataFormatter, urlParser: urlParser, dataTransferViewController: dataTransferViewControllerMock.object, getProvider: () => assessmentsProviderStub, @@ -278,6 +294,7 @@ describe('DetailsViewCommandBar', () => { }, rightPanelConfiguration, dataTransferViewStoreData: { showQuickAssessToAssessmentConfirmDialog: false }, + userConfigurationStoreData: { showSaveAssessmentDialog: false }, } as DetailsViewCommandBarProps; } @@ -298,9 +315,10 @@ describe('DetailsViewCommandBar', () => { }); test('renders null when tab closed', () => { - tabStoreData.isClosed = true; - - expect(renderTest()).toBeNull(); + const props = getProps(); + props.tabStoreData.isClosed = true; + const result = render(); + expect(result.container.firstChild).toBeNull(); }); test('renders with buttons collapsed into a menu', () => { @@ -313,6 +331,20 @@ describe('DetailsViewCommandBar', () => { expectMockedComponentPropsToMatchSnapshots([CommandBarButtonsMenu]); }); + test('renders with buttons ', () => { + useOriginalReactElements('DetailsView/components/load-assessment-button', [ + 'LoadAssessmentButton', + ]); + tabStoreData.isClosed = true; + isCommandBarCollapsed = false; + const props = getProps(); + + const renderResult = render(); + + expect(renderResult.asFragment()).toMatchSnapshot(); + expectMockedComponentPropsToMatchSnapshots([CommandBarButtonsMenu]); + }); + test('renders report export dialog', async () => { const originalDate = Date; const mockDate = new Date('2024-03-07T12:00:00Z'); @@ -323,7 +355,8 @@ describe('DetailsViewCommandBar', () => { 'ReportExportButton', ]); const renderResult = render(); - const exportButton = renderResult.getByRole('button', { name: 'Export result' }); + + const exportButton = renderResult.getByText('Export result'); expect(getMockComponentClassPropsForCall(ExportDialog, 1).isOpen).toBe(false); expect(renderResult.asFragment()).toMatchSnapshot('export dialog hidden'); await userEvent.click(exportButton); @@ -332,11 +365,26 @@ describe('DetailsViewCommandBar', () => { global.Date = originalDate; }); + test('renders save assessment dialog', async () => { + const props = getProps(['SaveAssessmentButton']); + props.userConfigurationStoreData.showSaveAssessmentDialog = true; + useOriginalReactElements('DetailsView/components/save-assessment-button', [ + 'SaveAssessmentButton', + ]); + const renderResult = render(); + const saveButton = renderResult.getByText('Save assessment'); + expect(getMockComponentClassPropsForCall(SaveAssessmentDialog, 1).isOpen).toBe(false); + expect(renderResult.asFragment()).toMatchSnapshot('save assessment dialog hidden'); + await userEvent.click(saveButton); + expect(getMockComponentClassPropsForCall(SaveAssessmentDialog, 2).isOpen).toBe(true); + expect(renderResult.asFragment()).toMatchSnapshot('Save assessment dialog open'); + }); + test('renders load assessment dialog', async () => { const props = getProps(['LoadAssessmentButton']); props.deps.loadAssessmentHelper = getLoadAssessmentHelperStub({ toggleLoad: true }); const renderResult = render(); - const loadAssessmentButton = renderResult.getByRole('button', { name: 'Load assessment' }); + const loadAssessmentButton = renderResult.getByText('Load assessment'); expect(getMockComponentClassPropsForCall(LoadAssessmentDialog, 1).isOpen).toBe(false); expect(renderResult.asFragment()).toMatchSnapshot('load assessment dialog hidden'); await userEvent.click(loadAssessmentButton); @@ -348,7 +396,7 @@ describe('DetailsViewCommandBar', () => { const props = getProps(['LoadAssessmentButton']); props.deps.loadAssessmentHelper = getLoadAssessmentHelperStub({ toggleInvalidLoad: true }); const renderResult = render(); - const loadAssessmentButton = renderResult.getByRole('button', { name: 'Load assessment' }); + const loadAssessmentButton = renderResult.getByText('Load assessment'); expect(getMockComponentClassPropsForCall(InvalidLoadAssessmentDialog, 1).isOpen).toBe( false, ); @@ -377,7 +425,7 @@ describe('DetailsViewCommandBar', () => { const props = getProps(['StartOverComponent']); const renderResult = render(); expect(getMockComponentClassPropsForCall(StartOverDialog, 1).dialogState).toBe('none'); - const startOverMenuButton = renderResult.getByRole('button', { name: 'start over menu' }); + const startOverMenuButton = renderResult.getByText('Start over'); await userEvent.click(startOverMenuButton); const startOverAssessmentButton = renderResult.getByRole('menuitem', { name: 'Start over Assessment', @@ -429,9 +477,7 @@ describe('DetailsViewCommandBar', () => { useOriginalReactElements('DetailsView/components/export-dialog', ['ExportDialog']); const props = getProps(['ReportExportDialogFactory', 'CommandBar']); const renderResult = render(); - const exportButton = renderResult.getByRole('button', { - name: 'Export result', - }); + const exportButton = renderResult.getByText('Export result'); expect(exportButton).not.toHaveFocus(); getMockComponentCall(ExportDialog)[0].afterDismissed(); expect(exportButton).toHaveFocus(); @@ -504,6 +550,16 @@ describe('DetailsViewCommandBar', () => { expect(renderResult.baseElement).toHaveFocus(); }); + test('render statover component', async () => { + isCommandBarCollapsed = true; + useOriginalReactElements('DetailsView/components/start-over-dialog', [ + 'StartOverDialog', + ]); + const props = getProps(['StartOverComponent', 'CommandBar']); + const renderResult = render(); + expect(renderResult).toMatchSnapshot(); + }); + test('focus start over button when focus ref is set', async () => { useOriginalReactElements('DetailsView/components/start-over-dialog', [ 'StartOverDialog', @@ -512,9 +568,7 @@ describe('DetailsViewCommandBar', () => { const renderResult = render(); expect(renderResult.baseElement).toHaveFocus(); - const startOverMenuButton = renderResult.getByRole('button', { - name: 'start over menu', - }); + const startOverMenuButton = renderResult.getByText('Start over'); act(() => { getMockComponentCall(StartOverDialog)[0].dismissDialog(); }); @@ -539,7 +593,7 @@ describe('DetailsViewCommandBar', () => { showReportExportButton = renderExportResults; if (renderStartOver) { - startOverComponent = Start Over Component; + startOverComponent = ; } const props = getProps(); @@ -554,15 +608,15 @@ describe('DetailsViewCommandBar', () => { expect(renderResult.asFragment()).toMatchSnapshot(); } - function renderTest(): JSX.Element { - const testSubject = getTestSubject(); + // function renderTest(): JSX.Element { + // const testSubject = getTestSubject(); - return testSubject.render(); - } + // return testSubject.render(); + // } - function getTestSubject(): DetailsViewCommandBar { - return new DetailsViewCommandBar(getProps()); - } + // function getTestSubject(): DetailsViewCommandBar { + // return new DetailsViewCommandBar(getProps()); + // } function setupReportExportDialogFactory( expectedProps?: Partial,