diff --git a/src/test/Components/CreateImageWizard/CreateImageWizard.test.tsx b/src/test/Components/CreateImageWizard/CreateImageWizard.test.tsx
index 94174459..ec335dcf 100644
--- a/src/test/Components/CreateImageWizard/CreateImageWizard.test.tsx
+++ b/src/test/Components/CreateImageWizard/CreateImageWizard.test.tsx
@@ -1,28 +1,7 @@
-import React from 'react';
-
import { screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
-import { clickNext } from './wizardTestUtils';
-
-import CreateImageWizard from '../../../Components/CreateImageWizard/CreateImageWizard';
-import ShareImageModal from '../../../Components/ShareImageModal/ShareImageModal';
-import { renderCustomRoutesWithReduxRouter } from '../../testUtils';
-
-const routes = [
- {
- path: 'insights/image-builder/*',
- element:
,
- },
- {
- path: 'insights/image-builder/imagewizard/:composeId?',
- element: ,
- },
- {
- path: 'insights/image-builder/share /:composeId',
- element: ,
- },
-];
+import { clickNext, renderCreateMode } from './wizardTestUtils';
const getSourceDropdown = async () => {
const sourceDropdown = await screen.findByRole('textbox', {
@@ -33,22 +12,48 @@ const getSourceDropdown = async () => {
return sourceDropdown;
};
+const selectAllEnvironments = async () => {
+ const user = userEvent.setup();
+
+ await waitFor(() => user.click(screen.getByTestId('upload-aws')));
+ await waitFor(() => user.click(screen.getByTestId('upload-google')));
+ await waitFor(() => user.click(screen.getByTestId('upload-azure')));
+ await waitFor(() => user.click(screen.getByTestId('checkbox-guest-image')));
+};
+
+const testTile = async (tile: HTMLElement) => {
+ const user = userEvent.setup();
+
+ tile.focus();
+ await waitFor(() => user.keyboard(' '));
+ expect(tile).toHaveClass('pf-m-selected');
+ await waitFor(() => user.keyboard(' '));
+ expect(tile).not.toHaveClass('pf-m-selected');
+};
+
describe('Create Image Wizard', () => {
beforeEach(() => {
vi.clearAllMocks();
});
test('renders component', async () => {
- renderCustomRoutesWithReduxRouter('imagewizard', {}, routes);
+ await renderCreateMode();
+
// check heading
await screen.findByRole('heading', { name: /Images/ });
+ // check navigation
await screen.findByRole('button', { name: 'Image output' });
+ await screen.findByRole('button', { name: 'Optional steps' });
await screen.findByRole('button', { name: 'Register' });
+ await screen.findByRole('button', { name: 'OpenSCAP' });
await screen.findByRole('button', { name: 'File system configuration' });
await screen.findByRole('button', { name: 'Repository snapshot' });
await screen.findByRole('button', { name: 'Custom repositories' });
await screen.findByRole('button', { name: 'Additional packages' });
+ await screen.findByRole('button', {
+ name: 'First boot script configuration',
+ });
await screen.findByRole('button', { name: 'Details' });
await screen.findByRole('button', { name: 'Review' });
});
@@ -146,32 +151,9 @@ describe('Keyboard accessibility', () => {
});
const user = userEvent.setup();
- const setUp = async () => {
- await renderCustomRoutesWithReduxRouter('imagewizard', {}, routes);
- await clickNext();
- };
-
- const selectAllEnvironments = async () => {
- await waitFor(
- async () => await user.click(await screen.findByTestId('upload-aws'))
- );
- await waitFor(async () =>
- user.click(await screen.findByTestId('upload-google'))
- );
- await waitFor(async () =>
- user.click(await screen.findByTestId('upload-azure'))
- );
- await waitFor(async () =>
- user.click(
- await screen.findByRole('checkbox', {
- name: /virtualization guest image checkbox/i,
- })
- )
- );
- };
test('autofocus on each step first input element', async () => {
- await setUp();
+ await renderCreateMode();
// Image output
await selectAllEnvironments();
@@ -257,29 +239,19 @@ describe('Keyboard accessibility', () => {
await clickNext();
// TODO: Focus on textbox on Details step
await clickNext();
- }, 20000);
+ });
test('pressing Enter does not advance the wizard', async () => {
- await setUp();
- await waitFor(
- async () => await user.click(await screen.findByTestId('upload-aws'))
- );
- await waitFor(() => user.keyboard('{enter}'));
+ await renderCreateMode();
+ user.click(await screen.findByTestId('upload-aws'));
+ user.keyboard('{enter}');
await screen.findByRole('heading', {
name: /image output/i,
});
});
test('target environment tiles are keyboard selectable', async () => {
- const testTile = async (tile: HTMLElement) => {
- tile.focus();
- await waitFor(() => user.keyboard(' '));
- expect(tile).toHaveClass('pf-m-selected');
- await waitFor(() => user.keyboard(' '));
- expect(tile).not.toHaveClass('pf-m-selected');
- };
-
- await setUp();
+ await renderCreateMode();
await testTile(await screen.findByTestId('upload-aws'));
await testTile(await screen.findByTestId('upload-google'));