diff --git a/src/test/Components/CreateImageWizard/CreateImageWizard.compliance.test.tsx b/src/test/Components/CreateImageWizard/CreateImageWizard.compliance.test.tsx
deleted file mode 100644
index 9a32e3fc..00000000
--- a/src/test/Components/CreateImageWizard/CreateImageWizard.compliance.test.tsx
+++ /dev/null
@@ -1,228 +0,0 @@
-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: ,
- },
-];
-
-const selectRhel8 = async () => {
- const user = userEvent.setup();
- await waitFor(async () =>
- user.click(
- screen.getAllByRole('button', {
- name: /options menu/i,
- })[0]
- )
- );
- const rhel8 = await screen.findByRole('option', {
- name: /red hat enterprise linux \(rhel\) 8/i,
- });
- await waitFor(async () => user.click(rhel8));
-};
-
-const clickFromImageOutputToOpenScap = async () => {
- const user = userEvent.setup();
- await clickNext();
- await waitFor(async () =>
- user.click(await screen.findByTestId('automatically-register-checkbox'))
- );
- await clickNext(); // skip registration
-};
-
-describe('Step Compliance', () => {
- beforeEach(() => {
- vi.clearAllMocks();
- });
-
- const user = userEvent.setup();
- const setup = async () => {
- renderCustomRoutesWithReduxRouter('imagewizard', {}, routes);
- };
- test('create an image with None oscap profile', async () => {
- await setup();
-
- // select aws as upload destination
- const uploadAws = await screen.findByTestId('upload-aws');
- user.click(uploadAws);
- await clickNext();
-
- // aws step
- const manualOption = await screen.findByRole('radio', {
- name: /manually enter an account id\./i,
- });
- await waitFor(() => user.click(manualOption));
- const awsAccountId = await screen.findByRole('textbox', {
- name: 'aws account id',
- });
- await waitFor(() => user.type(awsAccountId, '012345678901'));
-
- await clickNext();
- // skip registration
- const registrationCheckbox = await screen.findByTestId(
- 'automatically-register-checkbox'
- );
-
- user.click(registrationCheckbox);
- await clickNext();
-
- // Now we should be in the Compliance step
- await screen.findByRole('heading', { name: /OpenSCAP/i });
-
- const selectProfile = await screen.findByRole('textbox', {
- name: /select a profile/i,
- });
-
- user.click(selectProfile);
- const noneProfile = await screen.findByText(/none/i);
- user.click(noneProfile);
-
- // check that the FSC does not contain a /tmp partition
- await clickNext();
- await screen.findByRole('heading', { name: /File system configuration/i });
- expect(
- screen.queryByRole('cell', {
- name: /tmp/i,
- })
- ).not.toBeInTheDocument();
-
- await clickNext(); // skip RepositorySnapshot
- await clickNext(); // skip Repositories
-
- // check that there are no Packages contained when selecting the "None" profile option
- await clickNext();
- await screen.findByRole('heading', {
- name: /Additional packages/i,
- });
- await screen.findByText(
- /Search above to add additionalpackages to your image/
- );
- });
-
- test('create an image with an oscap profile', async () => {
- await setup();
-
- // select aws as upload destination
- const uploadAws = await screen.findByTestId('upload-aws');
-
- user.click(uploadAws);
- await clickNext();
-
- // aws step
- const manualOption = await screen.findByRole('radio', {
- name: /manually enter an account id\./i,
- });
-
- await waitFor(() => user.click(manualOption));
-
- await waitFor(async () =>
- user.type(
- await screen.findByRole('textbox', {
- name: 'aws account id',
- }),
- '012345678901'
- )
- );
- await clickNext();
- // skip registration
- const registrationCheckbox = await screen.findByTestId(
- 'automatically-register-checkbox'
- );
-
- user.click(registrationCheckbox);
- await clickNext();
-
- // Now we should be at the OpenSCAP step
- await screen.findByRole('heading', { name: /OpenSCAP/i });
-
- const selectProfile = await screen.findByRole('textbox', {
- name: /select a profile/i,
- });
- user.click(selectProfile);
-
- const cis1Profile = await screen.findByText(
- /cis red hat enterprise linux 8 benchmark for level 1 - workstation/i
- );
- user.click(cis1Profile);
- await screen.findByText(/kernel arguments:/i);
- await screen.findByText(/audit_backlog_limit=8192 audit=1/i);
- await screen.findByText(/disabled services:/i);
- await screen.findByText(
- /rpcbind autofs nftables nfs-server emacs-service/i
- );
- await screen.findByText(/enabled services:/i);
- await screen.findByText(/crond/i);
-
- // check that the FSC contains a /tmp partition
- await clickNext();
- await screen.findByRole('heading', { name: /File system configuration/i });
- await screen.findByText(/tmp/i);
-
- await clickNext(); // skip RepositorySnapshots
- await clickNext(); // skip Repositories
-
- // check that the Packages contains correct packages
- await clickNext();
- await screen.findByRole('heading', {
- name: /Additional packages/i,
- });
- const selected = await screen.findByText(/Selected/);
- user.click(selected);
- await screen.findByText(/aide/i);
- await screen.findByText(/neovim/i);
- });
-
- test('OpenSCAP dropdown is disabled for WSL targets only', async () => {
- await setup();
- await selectRhel8();
- const wslCheckbox = await screen.findByTestId('checkbox-wsl');
- user.click(wslCheckbox);
- await clickFromImageOutputToOpenScap();
- await screen.findByText(
- /OpenSCAP profiles are not compatible with WSL images/i
- );
- expect(
- await screen.findByRole('textbox', { name: /select a profile/i })
- ).toBeDisabled();
- });
-
- test('Alert displayed and OpenSCAP dropdown enabled when targets include WSL', async () => {
- await setup();
- await selectRhel8();
- const imageInstallerCheckbox = await screen.findByTestId(
- 'checkbox-image-installer'
- );
-
- user.click(imageInstallerCheckbox);
- const wslCheckbox = await screen.findByTestId('checkbox-wsl');
-
- user.click(wslCheckbox);
- await clickFromImageOutputToOpenScap();
- await screen.findByText(
- /OpenSCAP profiles are not compatible with WSL images/i
- );
- await waitFor(() => {
- expect(
- screen.getByRole('textbox', { name: /select a profile/i })
- ).toBeEnabled();
- });
- });
-});
diff --git a/src/test/Components/CreateImageWizard/steps/Oscap/Oscap.test.tsx b/src/test/Components/CreateImageWizard/steps/Oscap/Oscap.test.tsx
index aac551da..6f0137d1 100644
--- a/src/test/Components/CreateImageWizard/steps/Oscap/Oscap.test.tsx
+++ b/src/test/Components/CreateImageWizard/steps/Oscap/Oscap.test.tsx
@@ -1,6 +1,10 @@
+import React from 'react';
+
import { screen, waitFor, within } from '@testing-library/react';
import { userEvent } from '@testing-library/user-event';
+import CreateImageWizard from '../../../../../Components/CreateImageWizard/CreateImageWizard';
+import ShareImageModal from '../../../../../Components/ShareImageModal/ShareImageModal';
import { CREATE_BLUEPRINT, EDIT_BLUEPRINT } from '../../../../../constants';
import { CreateBlueprintRequest } from '../../../../../store/imageBuilderApi';
import { mockBlueprintIds } from '../../../../fixtures/blueprints';
@@ -13,11 +17,7 @@ import {
expectedServicesCisL2,
oscapCreateBlueprintRequest,
} from '../../../../fixtures/editMode';
-import {
- clickNext,
- clickReviewAndFinish,
- goToOscapStep,
-} from '../../wizardTestUtils';
+import { renderCustomRoutesWithReduxRouter } from '../../../../testUtils';
import {
enterBlueprintName,
interceptBlueprintRequest,
@@ -26,6 +26,11 @@ import {
renderCreateMode,
renderEditMode,
} from '../../wizardTestUtils';
+import {
+ clickNext,
+ clickReviewAndFinish,
+ goToOscapStep,
+} from '../../wizardTestUtils';
const selectProfile = async () => {
const user = userEvent.setup();
@@ -83,6 +88,224 @@ const clickRevisitButton = async () => {
await waitFor(() => user.click(revisitButton));
};
+const routes = [
+ {
+ path: 'insights/image-builder/*',
+ element: ,
+ },
+ {
+ path: 'insights/image-builder/imagewizard/:composeId?',
+ element: ,
+ },
+ {
+ path: 'insights/image-builder/share/:composeId',
+ element: ,
+ },
+];
+
+const selectRhel8 = async () => {
+ const user = userEvent.setup();
+ await waitFor(async () =>
+ user.click(
+ screen.getAllByRole('button', {
+ name: /options menu/i,
+ })[0]
+ )
+ );
+ const rhel8 = await screen.findByRole('option', {
+ name: /red hat enterprise linux \(rhel\) 8/i,
+ });
+ await waitFor(async () => user.click(rhel8));
+};
+
+const clickFromImageOutputToOpenScap = async () => {
+ const user = userEvent.setup();
+ await clickNext();
+ await waitFor(async () =>
+ user.click(await screen.findByTestId('automatically-register-checkbox'))
+ );
+ await clickNext(); // skip registration
+};
+
+describe('Step Compliance', () => {
+ beforeEach(() => {
+ vi.clearAllMocks();
+ });
+
+ const user = userEvent.setup();
+ const setup = async () => {
+ renderCustomRoutesWithReduxRouter('imagewizard', {}, routes);
+ };
+ test('create an image with None oscap profile', async () => {
+ await setup();
+
+ // select aws as upload destination
+ const uploadAws = await screen.findByTestId('upload-aws');
+ user.click(uploadAws);
+ await clickNext();
+
+ // aws step
+ const manualOption = await screen.findByRole('radio', {
+ name: /manually enter an account id\./i,
+ });
+ await waitFor(() => user.click(manualOption));
+ const awsAccountId = await screen.findByRole('textbox', {
+ name: 'aws account id',
+ });
+ await waitFor(() => user.type(awsAccountId, '012345678901'));
+
+ await clickNext();
+ // skip registration
+ const registrationCheckbox = await screen.findByTestId(
+ 'automatically-register-checkbox'
+ );
+
+ user.click(registrationCheckbox);
+ await clickNext();
+
+ // Now we should be in the Compliance step
+ await screen.findByRole('heading', { name: /OpenSCAP/i });
+
+ const selectProfile = await screen.findByRole('textbox', {
+ name: /select a profile/i,
+ });
+
+ user.click(selectProfile);
+ const noneProfile = await screen.findByText(/none/i);
+ user.click(noneProfile);
+
+ // check that the FSC does not contain a /tmp partition
+ await clickNext();
+ await screen.findByRole('heading', { name: /File system configuration/i });
+ expect(
+ screen.queryByRole('cell', {
+ name: /tmp/i,
+ })
+ ).not.toBeInTheDocument();
+
+ await clickNext(); // skip RepositorySnapshot
+ await clickNext(); // skip Repositories
+
+ // check that there are no Packages contained when selecting the "None" profile option
+ await clickNext();
+ await screen.findByRole('heading', {
+ name: /Additional packages/i,
+ });
+ await screen.findByText(
+ /Search above to add additionalpackages to your image/
+ );
+ });
+
+ test('create an image with an oscap profile', async () => {
+ await setup();
+
+ // select aws as upload destination
+ const uploadAws = await screen.findByTestId('upload-aws');
+
+ user.click(uploadAws);
+ await clickNext();
+
+ // aws step
+ const manualOption = await screen.findByRole('radio', {
+ name: /manually enter an account id\./i,
+ });
+
+ await waitFor(() => user.click(manualOption));
+
+ await waitFor(async () =>
+ user.type(
+ await screen.findByRole('textbox', {
+ name: 'aws account id',
+ }),
+ '012345678901'
+ )
+ );
+ await clickNext();
+ // skip registration
+ const registrationCheckbox = await screen.findByTestId(
+ 'automatically-register-checkbox'
+ );
+
+ user.click(registrationCheckbox);
+ await clickNext();
+
+ // Now we should be at the OpenSCAP step
+ await screen.findByRole('heading', { name: /OpenSCAP/i });
+
+ const selectProfile = await screen.findByRole('textbox', {
+ name: /select a profile/i,
+ });
+ user.click(selectProfile);
+
+ const cis1Profile = await screen.findByText(
+ /cis red hat enterprise linux 8 benchmark for level 1 - workstation/i
+ );
+ user.click(cis1Profile);
+ await screen.findByText(/kernel arguments:/i);
+ await screen.findByText(/audit_backlog_limit=8192 audit=1/i);
+ await screen.findByText(/disabled services:/i);
+ await screen.findByText(
+ /rpcbind autofs nftables nfs-server emacs-service/i
+ );
+ await screen.findByText(/enabled services:/i);
+ await screen.findByText(/crond/i);
+
+ // check that the FSC contains a /tmp partition
+ await clickNext();
+ await screen.findByRole('heading', { name: /File system configuration/i });
+ await screen.findByText(/tmp/i);
+
+ await clickNext(); // skip RepositorySnapshots
+ await clickNext(); // skip Repositories
+
+ // check that the Packages contains correct packages
+ await clickNext();
+ await screen.findByRole('heading', {
+ name: /Additional packages/i,
+ });
+ const selected = await screen.findByText(/Selected/);
+ user.click(selected);
+ await screen.findByText(/aide/i);
+ await screen.findByText(/neovim/i);
+ });
+
+ test('OpenSCAP dropdown is disabled for WSL targets only', async () => {
+ await setup();
+ await selectRhel8();
+ const wslCheckbox = await screen.findByTestId('checkbox-wsl');
+ user.click(wslCheckbox);
+ await clickFromImageOutputToOpenScap();
+ await screen.findByText(
+ /OpenSCAP profiles are not compatible with WSL images/i
+ );
+ expect(
+ await screen.findByRole('textbox', { name: /select a profile/i })
+ ).toBeDisabled();
+ });
+
+ test('Alert displayed and OpenSCAP dropdown enabled when targets include WSL', async () => {
+ await setup();
+ await selectRhel8();
+ const imageInstallerCheckbox = await screen.findByTestId(
+ 'checkbox-image-installer'
+ );
+
+ user.click(imageInstallerCheckbox);
+ const wslCheckbox = await screen.findByTestId('checkbox-wsl');
+
+ user.click(wslCheckbox);
+ await clickFromImageOutputToOpenScap();
+ await screen.findByText(
+ /OpenSCAP profiles are not compatible with WSL images/i
+ );
+ await waitFor(() => {
+ expect(
+ screen.getByRole('textbox', { name: /select a profile/i })
+ ).toBeEnabled();
+ });
+ });
+});
+
describe('Step Compliance', () => {
beforeEach(() => {
vi.clearAllMocks();