Uncomment all tests that should be passing up to this point in the V2 wizard development.
1601 lines
52 KiB
TypeScript
1601 lines
52 KiB
TypeScript
import React from 'react';
|
|
|
|
// import '@testing-library/jest-dom';
|
|
|
|
import {
|
|
screen,
|
|
// waitFor,
|
|
// waitForElementToBeRemoved,
|
|
// within,
|
|
} from '@testing-library/react';
|
|
// import userEvent from '@testing-library/user-event';
|
|
// import { rest } from 'msw';
|
|
|
|
import CreateImageWizard from '../../../Components/CreateImageWizardV2/CreateImageWizard';
|
|
import ShareImageModal from '../../../Components/ShareImageModal/ShareImageModal';
|
|
// import {
|
|
// IMAGE_BUILDER_API,
|
|
// PROVISIONING_API,
|
|
// RHEL_8,
|
|
// RHSM_API,
|
|
// } from '../../../constants.js';
|
|
// import { server } from '../../mocks/server.js';
|
|
import {
|
|
// clickBack,
|
|
// clickNext,
|
|
// getNextButton,
|
|
renderCustomRoutesWithReduxRouter,
|
|
// verifyCancelButton,
|
|
} from '../../testUtils';
|
|
|
|
const routes = [
|
|
{
|
|
path: 'insights/image-builder/*',
|
|
element: <div />,
|
|
},
|
|
{
|
|
path: 'insights/image-builder/imagewizard/:composeId?',
|
|
element: <CreateImageWizard />,
|
|
},
|
|
{
|
|
path: 'insights/image-builder/share /:composeId',
|
|
element: <ShareImageModal />,
|
|
},
|
|
];
|
|
|
|
// let router = undefined;
|
|
|
|
// jest.mock('@redhat-cloud-services/frontend-components/useChrome', () => ({
|
|
// useChrome: () => ({
|
|
// auth: {
|
|
// getUser: () => {
|
|
// return {
|
|
// identity: {
|
|
// internal: {
|
|
// org_id: 5,
|
|
// },
|
|
// },
|
|
// };
|
|
// },
|
|
// },
|
|
// isBeta: () => false,
|
|
// isProd: () => true,
|
|
// getEnvironment: () => 'prod',
|
|
// }),
|
|
// }));
|
|
|
|
// jest.mock('@unleash/proxy-client-react', () => ({
|
|
// useUnleashContext: () => jest.fn(),
|
|
// useFlag: jest.fn((flag) =>
|
|
// flag === 'image-builder.enable-content-sources' ? true : false
|
|
// ),
|
|
// }));
|
|
|
|
// const searchForAvailablePackages = async (searchbox, searchTerm) => {
|
|
// const user = userEvent.setup();
|
|
// await user.type(searchbox, searchTerm);
|
|
// await user.click(
|
|
// await screen.findByRole('button', {
|
|
// name: /search button for available packages/i,
|
|
// })
|
|
// );
|
|
// };
|
|
|
|
// const switchToAWSManual = async () => {
|
|
// const user = userEvent.setup();
|
|
// const manualRadio = screen.getByRole('radio', {
|
|
// name: /manually enter an account id\./i,
|
|
// });
|
|
// await user.click(manualRadio);
|
|
// return manualRadio;
|
|
// };
|
|
|
|
// const getSourceDropdown = async () => {
|
|
// const sourceDropdown = screen.getByRole('textbox', {
|
|
// name: /select source/i,
|
|
// });
|
|
// await waitFor(() => expect(sourceDropdown).toBeEnabled());
|
|
|
|
// return sourceDropdown;
|
|
// };
|
|
|
|
// beforeAll(() => {
|
|
// // scrollTo is not defined in jsdom
|
|
// window.HTMLElement.prototype.scrollTo = function () {};
|
|
// });
|
|
|
|
// afterEach(() => {
|
|
// jest.clearAllMocks();
|
|
// router = undefined;
|
|
// server.resetHandlers();
|
|
// });
|
|
|
|
describe('Create Image Wizard', () => {
|
|
test('renders component', () => {
|
|
renderCustomRoutesWithReduxRouter('imagewizard', {}, routes);
|
|
// check heading
|
|
screen.getByRole('heading', { name: /Image Builder/ });
|
|
|
|
// screen.getByRole('button', { name: 'Image output' });
|
|
// screen.getByRole('button', { name: 'Register' });
|
|
// screen.getByRole('button', { name: 'File system configuration' });
|
|
// screen.getByRole('button', { name: 'Content' });
|
|
// screen.getByRole('button', { name: 'Additional Red Hat packages' });
|
|
// screen.getByRole('button', { name: 'Custom repositories' });
|
|
// screen.getByRole('button', { name: 'Details' });
|
|
// screen.getByRole('button', { name: 'Review' });
|
|
});
|
|
});
|
|
|
|
// describe('Step Image output', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
|
|
// // select aws as upload destination
|
|
// await user.click(await screen.findByTestId('upload-aws'));
|
|
|
|
// await screen.findByRole('heading', { name: 'Image output' });
|
|
// };
|
|
|
|
// test('clicking Next loads Upload to AWS', async () => {
|
|
// await setUp();
|
|
|
|
// await clickNext();
|
|
|
|
// await switchToAWSManual();
|
|
// await screen.findByText('AWS account ID');
|
|
// });
|
|
|
|
// test('clicking Cancel loads landing page', async () => {
|
|
// await setUp();
|
|
// await clickNext();
|
|
|
|
// await verifyCancelButton(router);
|
|
// });
|
|
|
|
// test('target environment is required', async () => {
|
|
// await setUp();
|
|
|
|
// const destination = screen.getByTestId('target-select');
|
|
// const required = within(destination).getByText('*');
|
|
// expect(destination).toBeEnabled();
|
|
// expect(destination).toContainElement(required);
|
|
// });
|
|
|
|
// test('selecting and deselecting a tile disables the next button', async () => {
|
|
// await setUp();
|
|
// const nextButton = await getNextButton();
|
|
|
|
// const awsTile = screen.getByTestId('upload-aws');
|
|
// // this has already been clicked once in the setup function
|
|
// await user.click(awsTile); // deselect
|
|
|
|
// const googleTile = screen.getByTestId('upload-google');
|
|
// await user.click(googleTile); // select
|
|
// await user.click(googleTile); // deselect
|
|
|
|
// const azureTile = screen.getByTestId('upload-azure');
|
|
// await user.click(azureTile); // select
|
|
// await user.click(azureTile); // deselect
|
|
|
|
// await waitFor(() => expect(nextButton).toBeDisabled());
|
|
// });
|
|
|
|
// test('expect only RHEL releases before expansion', async () => {
|
|
// await setUp();
|
|
|
|
// const releaseMenu = screen.getAllByRole('button', {
|
|
// name: /options menu/i,
|
|
// })[0];
|
|
// await user.click(releaseMenu);
|
|
|
|
// await screen.findByRole('option', {
|
|
// name: /Red Hat Enterprise Linux \(RHEL\) 8/,
|
|
// });
|
|
// await screen.findByRole('option', {
|
|
// name: /Red Hat Enterprise Linux \(RHEL\) 9/,
|
|
// });
|
|
// await screen.findByRole('button', {
|
|
// name: 'Show options for further development of RHEL',
|
|
// });
|
|
|
|
// await user.click(releaseMenu);
|
|
// });
|
|
|
|
// test('expect all releases after expansion', async () => {
|
|
// await setUp();
|
|
|
|
// const releaseMenu = screen.getAllByRole('button', {
|
|
// name: /options menu/i,
|
|
// })[0];
|
|
// await user.click(releaseMenu);
|
|
|
|
// const showOptionsButton = screen.getByRole('button', {
|
|
// name: 'Show options for further development of RHEL',
|
|
// });
|
|
// await user.click(showOptionsButton);
|
|
|
|
// await screen.findByRole('option', {
|
|
// name: /Red Hat Enterprise Linux \(RHEL\) 8/,
|
|
// });
|
|
// await screen.findByRole('option', {
|
|
// name: /Red Hat Enterprise Linux \(RHEL\) 9/,
|
|
// });
|
|
// await screen.findByRole('option', {
|
|
// name: 'CentOS Stream 8',
|
|
// });
|
|
// await screen.findByRole('option', {
|
|
// name: 'CentOS Stream 9',
|
|
// });
|
|
|
|
// expect(showOptionsButton).not.toBeInTheDocument();
|
|
|
|
// await user.click(releaseMenu);
|
|
// });
|
|
|
|
// test('release lifecycle chart appears only when RHEL 8 is chosen', async () => {
|
|
// await setUp();
|
|
|
|
// const releaseMenu = screen.getAllByRole('button', {
|
|
// name: /options menu/i,
|
|
// })[0];
|
|
// await user.click(releaseMenu);
|
|
|
|
// await user.click(
|
|
// await screen.findByRole('option', {
|
|
// name: /Red Hat Enterprise Linux \(RHEL\) 9/,
|
|
// })
|
|
// );
|
|
// expect(
|
|
// screen.queryByTestId('release-lifecycle-chart')
|
|
// ).not.toBeInTheDocument();
|
|
|
|
// await user.click(releaseMenu);
|
|
|
|
// await user.click(
|
|
// await screen.findByRole('option', {
|
|
// name: /Red Hat Enterprise Linux \(RHEL\) 8/,
|
|
// })
|
|
// );
|
|
// expect(
|
|
// await screen.findByTestId('release-lifecycle-chart')
|
|
// ).toBeInTheDocument();
|
|
// });
|
|
|
|
// test('CentOS acknowledgement appears', async () => {
|
|
// await setUp();
|
|
|
|
// const releaseMenu = screen.getAllByRole('button', {
|
|
// name: /options menu/i,
|
|
// })[0];
|
|
// await user.click(releaseMenu);
|
|
|
|
// const showOptionsButton = screen.getByRole('button', {
|
|
// name: 'Show options for further development of RHEL',
|
|
// });
|
|
// await user.click(showOptionsButton);
|
|
|
|
// const centOSButton = screen.getByRole('option', {
|
|
// name: 'CentOS Stream 9',
|
|
// });
|
|
// await user.click(centOSButton);
|
|
|
|
// await screen.findByText(
|
|
// 'CentOS Stream builds are intended for the development of future versions of RHEL and are not supported for production workloads or other use cases.'
|
|
// );
|
|
// });
|
|
// });
|
|
|
|
// describe('Step Upload to AWS', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
|
|
// // select aws as upload destination
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
|
|
// await clickNext();
|
|
|
|
// await screen.findByRole('heading', {
|
|
// name: 'Target environment - Amazon Web Services',
|
|
// });
|
|
// };
|
|
|
|
// test('clicking Next loads Registration', async () => {
|
|
// await setUp();
|
|
|
|
// await switchToAWSManual();
|
|
// await user.type(
|
|
// await screen.findByTestId('aws-account-id'),
|
|
// '012345678901'
|
|
// );
|
|
// await clickNext();
|
|
|
|
// await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
|
|
// screen.getByText('Automatically register and enable advanced capabilities');
|
|
// });
|
|
|
|
// test('clicking Back loads Release', async () => {
|
|
// await setUp();
|
|
|
|
// await clickBack();
|
|
|
|
// screen.getByTestId('upload-aws');
|
|
// });
|
|
|
|
// test('clicking Cancel loads landing page', async () => {
|
|
// await setUp();
|
|
|
|
// await verifyCancelButton(router);
|
|
// });
|
|
|
|
// test('component renders error state correctly', async () => {
|
|
// server.use(
|
|
// rest.get(`${PROVISIONING_API}/sources`, (req, res, ctx) =>
|
|
// res(ctx.status(500))
|
|
// )
|
|
// );
|
|
// await setUp();
|
|
// await screen.findByText(
|
|
// /sources cannot be reached, try again later or enter an aws account id manually\./i
|
|
// );
|
|
// });
|
|
|
|
// test('validation works', async () => {
|
|
// await setUp();
|
|
// const nextButton = await getNextButton();
|
|
|
|
// expect(nextButton).toHaveClass('pf-m-disabled');
|
|
|
|
// await user.click(
|
|
// screen.getByRole('radio', { name: /manually enter an account id\./i })
|
|
// );
|
|
|
|
// expect(nextButton).toHaveClass('pf-m-disabled');
|
|
|
|
// const awsAccId = screen.getByTestId('aws-account-id');
|
|
// expect(awsAccId).toHaveValue('');
|
|
// expect(awsAccId).toBeEnabled();
|
|
// await user.type(awsAccId, '012345678901');
|
|
|
|
// expect(nextButton).not.toHaveClass('pf-m-disabled');
|
|
|
|
// await user.click(
|
|
// screen.getByRole('radio', {
|
|
// name: /use an account configured from sources\./i,
|
|
// })
|
|
// );
|
|
|
|
// await waitFor(() => expect(nextButton).toHaveClass('pf-m-disabled'));
|
|
|
|
// const sourceDropdown = await getSourceDropdown();
|
|
// await user.click(sourceDropdown);
|
|
|
|
// const source = await screen.findByRole('option', {
|
|
// name: /my_source/i,
|
|
// });
|
|
// await user.click(source);
|
|
|
|
// await waitFor(() => expect(nextButton).not.toHaveClass('pf-m-disabled'));
|
|
// });
|
|
|
|
// test('compose request share_with_sources field is correct', async () => {
|
|
// await setUp();
|
|
|
|
// const sourceDropdown = await getSourceDropdown();
|
|
// await user.click(sourceDropdown);
|
|
|
|
// const source = await screen.findByRole('option', {
|
|
// name: /my_source/i,
|
|
// });
|
|
// await user.click(source);
|
|
|
|
// await clickNext();
|
|
|
|
// // registration
|
|
// await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
|
|
// const registerLaterRadio = screen.getByLabelText('Register later');
|
|
// await user.click(registerLaterRadio);
|
|
|
|
// // click through to review step
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
|
|
// await user.click(screen.getByRole('button', { name: /Create/ }));
|
|
|
|
// // returns back to the landing page
|
|
// await waitFor(() =>
|
|
// expect(router.state.location.pathname).toBe('/insights/image-builder')
|
|
// );
|
|
// // set test timeout of 10 seconds
|
|
// }, 10000);
|
|
// });
|
|
|
|
// describe('Step Upload to Google', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
|
|
// // select gcp as upload destination
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-google'))
|
|
// );
|
|
|
|
// await clickNext();
|
|
|
|
// await screen.findByRole('heading', {
|
|
// name: 'Target environment - Google Cloud Platform',
|
|
// });
|
|
// };
|
|
|
|
// test('clicking Next loads Registration', async () => {
|
|
// await setUp();
|
|
|
|
// const shareRadioButton = await screen.findByRole('radio', {
|
|
// name: /share image with a google account/i,
|
|
// });
|
|
// await user.click(shareRadioButton);
|
|
|
|
// const googleEmailInput = await screen.findByTestId('input-google-email');
|
|
|
|
// await user.type(googleEmailInput, 'test@test.com');
|
|
// await clickNext();
|
|
|
|
// await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
|
|
// screen.getByText('Automatically register and enable advanced capabilities');
|
|
// });
|
|
|
|
// test('clicking Back loads Release', async () => {
|
|
// await setUp();
|
|
|
|
// await clickBack();
|
|
|
|
// screen.getByTestId('upload-google');
|
|
// });
|
|
|
|
// test('clicking Cancel loads landing page', async () => {
|
|
// await setUp();
|
|
|
|
// await verifyCancelButton(router);
|
|
// });
|
|
|
|
// test('the google account id field is shown and required', async () => {
|
|
// await setUp();
|
|
|
|
// await waitFor(() => {
|
|
// screen.getByTestId('account-sharing');
|
|
// });
|
|
|
|
// await user.click(screen.getByTestId('account-sharing'));
|
|
// const accessKeyId = await screen.findByTestId('input-google-email');
|
|
// expect(accessKeyId).toHaveValue('');
|
|
// expect(accessKeyId).toBeEnabled();
|
|
// });
|
|
|
|
// test('the google email field must be a valid email', async () => {
|
|
// await setUp();
|
|
|
|
// await user.click(screen.getByTestId('account-sharing'));
|
|
// await user.type(screen.getByTestId('input-google-email'), 'a');
|
|
// expect(await getNextButton()).toHaveClass('pf-m-disabled');
|
|
// expect(await getNextButton()).toBeDisabled();
|
|
// await user.type(screen.getByTestId('input-google-email'), 'test@test.com');
|
|
// expect(await getNextButton()).not.toHaveClass('pf-m-disabled');
|
|
// expect(await getNextButton()).toBeEnabled();
|
|
// });
|
|
// });
|
|
|
|
// describe('Step Registration', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
|
|
// // select aws as upload destination
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
|
|
// await clickNext();
|
|
// await user.click(
|
|
// screen.getByRole('radio', { name: /manually enter an account id\./i })
|
|
// );
|
|
// await user.type(screen.getByTestId('aws-account-id'), '012345678901');
|
|
// await clickNext();
|
|
|
|
// await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
// };
|
|
|
|
// test('clicking Next loads file system configuration', async () => {
|
|
// await setUp();
|
|
|
|
// const registerLaterRadio = screen.getByTestId('registration-radio-later');
|
|
// await user.click(registerLaterRadio);
|
|
|
|
// await clickNext();
|
|
|
|
// await screen.findByRole('heading', {
|
|
// name: 'File system configuration',
|
|
// });
|
|
// });
|
|
|
|
// test('clicking Back loads Upload to AWS', async () => {
|
|
// await setUp();
|
|
|
|
// await clickBack();
|
|
|
|
// await user.click(
|
|
// screen.getByRole('radio', { name: /manually enter an account id\./i })
|
|
// );
|
|
// screen.getByText('AWS account ID');
|
|
// });
|
|
|
|
// test('clicking Cancel loads landing page', async () => {
|
|
// await setUp();
|
|
|
|
// await verifyCancelButton(router);
|
|
// });
|
|
|
|
// test('activation key dropdown empty state', async () => {
|
|
// server.use(
|
|
// rest.get(`${RHSM_API}/activation_keys`, (req, res, ctx) =>
|
|
// res(ctx.status(200), ctx.json({ body: [] }))
|
|
// )
|
|
// );
|
|
// await setUp();
|
|
// const activationKeyDropdown = await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
// await user.click(activationKeyDropdown);
|
|
// await screen.findByText('No activation keys found');
|
|
// });
|
|
|
|
// test('should allow registering with rhc', async () => {
|
|
// await setUp();
|
|
|
|
// const activationKeyDropdown = await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
// await user.click(activationKeyDropdown);
|
|
// const activationKey = await screen.findByRole('option', {
|
|
// name: 'name0',
|
|
// });
|
|
// await user.click(activationKey);
|
|
// screen.getByDisplayValue('name0');
|
|
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// const review = screen.getByTestId('review-registration');
|
|
// expect(review).toHaveTextContent(
|
|
// 'Register with Red Hat Subscription Manager (RHSM)'
|
|
// );
|
|
// expect(review).toHaveTextContent('Connect to Red Hat Insights');
|
|
// expect(review).toHaveTextContent(
|
|
// 'Use remote host configuration (rhc) utility'
|
|
// );
|
|
// screen.getAllByText('012345678901');
|
|
// });
|
|
|
|
// test('should allow registering without rhc', async () => {
|
|
// await setUp();
|
|
|
|
// await user.click(screen.getByTestId('registration-additional-options'));
|
|
// await user.click(screen.getByTestId('registration-checkbox-rhc'));
|
|
|
|
// // going back and forward when rhc isn't selected should keep additional options shown
|
|
// await clickBack();
|
|
// await screen.findByTestId('aws-account-id');
|
|
// await clickNext();
|
|
// screen.getByTestId('registration-checkbox-insights');
|
|
// screen.getByTestId('registration-checkbox-rhc');
|
|
|
|
// const activationKeyDropdown = await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
// await user.click(activationKeyDropdown);
|
|
// const activationKey = await screen.findByRole('option', {
|
|
// name: 'name0',
|
|
// });
|
|
// await user.click(activationKey);
|
|
// screen.getByDisplayValue('name0');
|
|
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// const review = screen.getByTestId('review-registration');
|
|
// expect(review).toHaveTextContent(
|
|
// 'Register with Red Hat Subscription Manager (RHSM)'
|
|
// );
|
|
// expect(review).toHaveTextContent('Connect to Red Hat Insights');
|
|
// screen.getAllByText('012345678901');
|
|
// expect(review).not.toHaveTextContent(
|
|
// 'Use remote host configuration (rhc) utility'
|
|
// );
|
|
// });
|
|
|
|
// test('should allow registering without insights or rhc', async () => {
|
|
// await setUp();
|
|
|
|
// await user.click(screen.getByTestId('registration-additional-options'));
|
|
// await user.click(screen.getByTestId('registration-checkbox-insights'));
|
|
|
|
// // going back and forward when neither rhc or insights is selected should keep additional options shown
|
|
// await clickBack();
|
|
// await screen.findByTestId('aws-account-id');
|
|
// await clickNext();
|
|
// screen.getByTestId('registration-checkbox-insights');
|
|
// screen.getByTestId('registration-checkbox-rhc');
|
|
|
|
// const activationKeyDropdown = await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
// await user.click(activationKeyDropdown);
|
|
// const activationKey = await screen.findByRole('option', {
|
|
// name: 'name0',
|
|
// });
|
|
// await user.click(activationKey);
|
|
// screen.getByDisplayValue('name0');
|
|
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// const review = screen.getByTestId('review-registration');
|
|
// expect(review).toHaveTextContent(
|
|
// 'Register with Red Hat Subscription Manager (RHSM)'
|
|
// );
|
|
// screen.getAllByText('012345678901');
|
|
// expect(review).not.toHaveTextContent('Connect to Red Hat Insights');
|
|
// expect(review).not.toHaveTextContent(
|
|
// 'Use remote host configuration (rhc) utility'
|
|
// );
|
|
// });
|
|
|
|
// test('should hide input fields when clicking Register the system later', async () => {
|
|
// await setUp();
|
|
// const removeKeyInformation = waitForElementToBeRemoved(() => [
|
|
// screen.getByTestId('subscription-activation-key'),
|
|
// ]);
|
|
|
|
// // click the later radio button which should remove any input fields
|
|
// await user.click(screen.getByTestId('registration-radio-later'));
|
|
|
|
// await removeKeyInformation;
|
|
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// await clickNext();
|
|
// screen.getByText('Register the system later');
|
|
// });
|
|
|
|
// test('registering with rhc implies registering with insights', async () => {
|
|
// await setUp();
|
|
// await user.click(screen.getByTestId('registration-additional-options'));
|
|
|
|
// await user.click(screen.getByTestId('registration-checkbox-insights'));
|
|
// expect(screen.getByTestId('registration-checkbox-rhc')).not.toBeChecked();
|
|
|
|
// await user.click(screen.getByTestId('registration-checkbox-rhc'));
|
|
// expect(screen.getByTestId('registration-checkbox-insights')).toBeChecked();
|
|
// });
|
|
// });
|
|
|
|
// describe('Step File system configuration', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
|
|
// // select aws as upload destination
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
// await clickNext();
|
|
|
|
// // aws step
|
|
// await switchToAWSManual();
|
|
// await user.type(
|
|
// await screen.findByTestId('aws-account-id'),
|
|
// '012345678901'
|
|
// );
|
|
// await clickNext();
|
|
// // skip registration
|
|
// await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
|
|
// const registerLaterRadio = screen.getByTestId('registration-radio-later');
|
|
// await user.click(registerLaterRadio);
|
|
// await clickNext();
|
|
// };
|
|
|
|
// test('Error validation occurs upon clicking next button', async () => {
|
|
// await setUp();
|
|
|
|
// const manuallyConfigurePartitions = screen.getByText(
|
|
// /manually configure partitions/i
|
|
// );
|
|
// await user.click(manuallyConfigurePartitions);
|
|
|
|
// const addPartition = await screen.findByTestId('file-system-add-partition');
|
|
|
|
// // Create duplicate partitions
|
|
// await user.click(addPartition);
|
|
// await user.click(addPartition);
|
|
|
|
// expect(await getNextButton()).toBeEnabled();
|
|
|
|
// // Clicking next causes errors to appear
|
|
// await clickNext();
|
|
|
|
// const mountPointWarning = screen.getByRole('heading', {
|
|
// name: /danger alert: duplicate mount points: all mount points must be unique\. remove the duplicate or choose a new mount point\./i,
|
|
// hidden: true,
|
|
// });
|
|
|
|
// const mountPointAlerts = screen.getAllByRole('heading', {
|
|
// name: /danger alert: duplicate mount point\./i,
|
|
// });
|
|
|
|
// const tbody = screen.getByTestId('file-system-configuration-tbody');
|
|
// const rows = within(tbody).getAllByRole('row');
|
|
// expect(rows).toHaveLength(3);
|
|
|
|
// // Change mountpoint of final row to /var, resolving errors
|
|
// const mountPointOptions = within(rows[2]).getAllByRole('button', {
|
|
// name: 'Options menu',
|
|
// })[0];
|
|
// await user.click(mountPointOptions);
|
|
// const varButton = await within(rows[2]).findByRole('option', {
|
|
// name: '/var',
|
|
// });
|
|
// await user.click(varButton);
|
|
|
|
// await waitFor(() => expect(mountPointWarning).not.toBeInTheDocument());
|
|
// await waitFor(() => expect(mountPointAlerts[0]).not.toBeInTheDocument());
|
|
// await waitFor(() => expect(mountPointAlerts[1]).not.toBeInTheDocument());
|
|
// expect(await getNextButton()).toBeEnabled();
|
|
// });
|
|
// });
|
|
|
|
// describe('Step Details', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
|
|
// // select aws as upload destination
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
// await clickNext();
|
|
|
|
// // aws step
|
|
// await switchToAWSManual();
|
|
// await user.type(
|
|
// await screen.findByTestId('aws-account-id'),
|
|
// '012345678901'
|
|
// );
|
|
// await clickNext();
|
|
// // skip registration
|
|
// await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
|
|
// const registerLaterRadio = screen.getByTestId('registration-radio-later');
|
|
// await user.click(registerLaterRadio);
|
|
// await clickNext();
|
|
|
|
// // skip fsc
|
|
// await clickNext();
|
|
// // skip packages
|
|
// await clickNext();
|
|
// // skip repositories
|
|
// await clickNext();
|
|
// };
|
|
|
|
// test('image name invalid for more than 63 chars', async () => {
|
|
// await setUp();
|
|
|
|
// // Enter image name
|
|
// const nameInput = screen.getByRole('textbox', {
|
|
// name: 'Image Name',
|
|
// });
|
|
// // 64 character name
|
|
// const invalidName = 'a'.repeat(64);
|
|
// await user.type(nameInput, invalidName);
|
|
// expect(await getNextButton()).toHaveClass('pf-m-disabled');
|
|
// expect(await getNextButton()).toBeDisabled();
|
|
// await user.clear(nameInput);
|
|
|
|
// await user.type(nameInput, 'valid-name');
|
|
// expect(await getNextButton()).not.toHaveClass('pf-m-disabled');
|
|
// expect(await getNextButton()).toBeEnabled();
|
|
|
|
// // Enter description image
|
|
// const descriptionInput = screen.getByRole('textbox', {
|
|
// name: /description/i,
|
|
// });
|
|
|
|
// const invalidDescription = 'a'.repeat(251);
|
|
// await user.type(descriptionInput, invalidDescription);
|
|
|
|
// expect(await getNextButton()).toHaveClass('pf-m-disabled');
|
|
// expect(await getNextButton()).toBeDisabled();
|
|
// await user.clear(descriptionInput);
|
|
// await user.type(descriptionInput, 'valid-description');
|
|
|
|
// expect(await getNextButton()).not.toHaveClass('pf-m-disabled');
|
|
// expect(await getNextButton()).toBeEnabled();
|
|
// });
|
|
// });
|
|
|
|
// describe('Step Review', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
|
|
// // select aws as upload destination
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
// await clickNext();
|
|
|
|
// // aws step
|
|
// await switchToAWSManual();
|
|
// await user.type(
|
|
// await screen.findByTestId('aws-account-id'),
|
|
// '012345678901'
|
|
// );
|
|
// await clickNext();
|
|
|
|
// await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
|
|
// // skip registration
|
|
// const registerLaterRadio = screen.getByTestId('registration-radio-later');
|
|
// await user.click(registerLaterRadio);
|
|
|
|
// await clickNext();
|
|
// // skip fsc
|
|
// await clickNext();
|
|
// // skip packages
|
|
// await clickNext();
|
|
// // skip repositories
|
|
// await clickNext();
|
|
// // skip name
|
|
// await clickNext();
|
|
// };
|
|
|
|
// const setUpCentOS = async () => {
|
|
// ({ router } = renderCustomRoutesWithReduxRouter('imagewizard', {}, routes));
|
|
|
|
// const releaseMenu = screen.getAllByRole('button', {
|
|
// name: /options menu/i,
|
|
// })[0];
|
|
// await user.click(releaseMenu);
|
|
|
|
// const showOptionsButton = screen.getByRole('button', {
|
|
// name: 'Show options for further development of RHEL',
|
|
// });
|
|
// await user.click(showOptionsButton);
|
|
|
|
// const centos = screen.getByRole('option', {
|
|
// name: 'CentOS Stream 8',
|
|
// });
|
|
// await user.click(centos);
|
|
|
|
// // select aws as upload destination
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
// await clickNext();
|
|
|
|
// // aws step
|
|
// await switchToAWSManual();
|
|
// await user.type(
|
|
// await screen.findByTestId('aws-account-id'),
|
|
// '012345678901'
|
|
// );
|
|
// await clickNext();
|
|
// // skip fsc
|
|
// await clickNext();
|
|
// // skip packages
|
|
// await clickNext();
|
|
// // skip repositories
|
|
// await clickNext();
|
|
// // skip name
|
|
// await clickNext();
|
|
// };
|
|
|
|
// test('has 3 buttons', async () => {
|
|
// await setUp();
|
|
|
|
// screen.getByRole('button', { name: /Create/ });
|
|
// screen.getByRole('button', { name: /Back/ });
|
|
// screen.getByRole('button', { name: /Cancel/ });
|
|
// });
|
|
|
|
// test('clicking Back loads Image name', async () => {
|
|
// await setUp();
|
|
|
|
// await clickBack();
|
|
|
|
// screen.getByRole('heading', {
|
|
// name: 'Details',
|
|
// });
|
|
// });
|
|
|
|
// test('clicking Cancel loads landing page', async () => {
|
|
// await setUp();
|
|
|
|
// await verifyCancelButton(router);
|
|
// });
|
|
|
|
// test('has Registration expandable section for rhel', async () => {
|
|
// await setUp();
|
|
|
|
// const targetExpandable = screen.getByTestId(
|
|
// 'target-environments-expandable'
|
|
// );
|
|
// const registrationExpandable = screen.getByTestId(
|
|
// 'registration-expandable'
|
|
// );
|
|
// const contentExpandable = screen.getByTestId('content-expandable');
|
|
// const fscExpandable = screen.getByTestId(
|
|
// 'file-system-configuration-expandable'
|
|
// );
|
|
|
|
// await user.click(targetExpandable);
|
|
// screen.getByText('AWS');
|
|
// await user.click(registrationExpandable);
|
|
// screen.getByText('Register the system later');
|
|
// await user.click(contentExpandable);
|
|
// screen.getByText('Additional Red Hatand 3rd party packages');
|
|
// await user.click(fscExpandable);
|
|
// screen.getByText('Configuration type');
|
|
// });
|
|
|
|
// test('has no Registration expandable for centos', async () => {
|
|
// await setUpCentOS();
|
|
|
|
// const targetExpandable = await screen.findByTestId(
|
|
// 'target-environments-expandable'
|
|
// );
|
|
// const contentExpandable = await screen.findByTestId('content-expandable');
|
|
// const fscExpandable = await screen.findByTestId(
|
|
// 'file-system-configuration-expandable'
|
|
// );
|
|
// expect(
|
|
// screen.queryByTestId('registration-expandable')
|
|
// ).not.toBeInTheDocument();
|
|
|
|
// await user.click(targetExpandable);
|
|
// screen.getByText('AWS');
|
|
// await user.click(contentExpandable);
|
|
// screen.getByText('Additional Red Hatand 3rd party packages');
|
|
// await user.click(fscExpandable);
|
|
// screen.getByText('Configuration type');
|
|
// });
|
|
// });
|
|
|
|
// describe('Click through all steps', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
// };
|
|
|
|
// test('with valid values', async () => {
|
|
// await setUp();
|
|
|
|
// // select image output
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
// const releaseMenu = screen.getAllByRole('button', {
|
|
// name: /options menu/i,
|
|
// })[0];
|
|
// await user.click(releaseMenu);
|
|
// const releaseOption = screen.getByRole('option', {
|
|
// name: /Red Hat Enterprise Linux \(RHEL\) 8/,
|
|
// });
|
|
// await user.click(releaseOption);
|
|
|
|
// await waitFor(() => screen.findByTestId('upload-aws'));
|
|
// await user.click(screen.getByTestId('upload-azure'));
|
|
// await user.click(screen.getByTestId('upload-google'));
|
|
// await user.click(screen.getByTestId('checkbox-vmware'));
|
|
// await user.click(screen.getByTestId('checkbox-guest-image'));
|
|
// await user.click(screen.getByTestId('checkbox-image-installer'));
|
|
|
|
// await clickNext();
|
|
// await user.click(
|
|
// screen.getByRole('radio', { name: /manually enter an account id\./i })
|
|
// );
|
|
// await user.type(screen.getByTestId('aws-account-id'), '012345678901');
|
|
// await clickNext();
|
|
|
|
// await user.click(screen.getByTestId('account-sharing'));
|
|
|
|
// await user.type(screen.getByTestId('input-google-email'), 'test@test.com');
|
|
|
|
// await user.click(await screen.findByTestId('account-sharing'));
|
|
// await clickNext();
|
|
|
|
// await user.click(screen.getByTestId('azure-radio-manual'));
|
|
// // Randomly generated GUID
|
|
// await user.type(
|
|
// screen.getByTestId('azure-tenant-id-manual'),
|
|
// 'b8f86d22-4371-46ce-95e7-65c415f3b1e2'
|
|
// );
|
|
// await user.type(
|
|
// screen.getByTestId('azure-subscription-id-manual'),
|
|
// '60631143-a7dc-4d15-988b-ba83f3c99711'
|
|
// );
|
|
// await user.type(
|
|
// screen.getByTestId('azure-resource-group-manual'),
|
|
// 'testResourceGroup'
|
|
// );
|
|
// await clickNext();
|
|
|
|
// // registration
|
|
// const activationKeyDropdown = await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
// await user.click(activationKeyDropdown);
|
|
// const activationKey = await screen.findByRole('option', {
|
|
// name: 'name0',
|
|
// });
|
|
// await user.click(activationKey);
|
|
// screen.getByDisplayValue('name0');
|
|
|
|
// await clickNext();
|
|
|
|
// // fsc
|
|
// const fscToggle = await screen.findByTestId(
|
|
// 'file-system-config-radio-manual'
|
|
// );
|
|
// await user.click(fscToggle);
|
|
// const addPartition = await screen.findByTestId('file-system-add-partition');
|
|
// await user.click(addPartition);
|
|
// await user.click(addPartition);
|
|
|
|
// const tbody = screen.getByTestId('file-system-configuration-tbody');
|
|
// const rows = within(tbody).getAllByRole('row');
|
|
// await waitFor(() => expect(rows).toHaveLength(3));
|
|
// await clickNext();
|
|
|
|
// // set mountpoint of final row to /var/tmp
|
|
// const mountPointMenu = within(rows[2]).getAllByRole('button', {
|
|
// name: 'Options menu',
|
|
// })[0];
|
|
// await user.click(mountPointMenu);
|
|
|
|
// const varButton = await within(rows[2]).findByRole('option', {
|
|
// name: '/var',
|
|
// });
|
|
// await user.click(varButton);
|
|
// expect(
|
|
// screen.queryByRole('heading', {
|
|
// name: 'Danger alert: Duplicate mount point.',
|
|
// })
|
|
// ).not.toBeInTheDocument();
|
|
// await user.type(
|
|
// within(rows[2]).getByRole('textbox', {
|
|
// name: 'Mount point suffix text input',
|
|
// }),
|
|
// '/tmp'
|
|
// );
|
|
|
|
// // set size of the final row to 100 MiB
|
|
// await user.type(
|
|
// within(rows[2]).getByRole('textbox', { name: 'Size text input' }),
|
|
// '{backspace}100'
|
|
// );
|
|
// const unitMenu = within(rows[2]).getAllByRole('button', {
|
|
// name: 'Options menu',
|
|
// })[1];
|
|
// await user.click(unitMenu);
|
|
|
|
// const mibButton = await within(rows[2]).findByRole('option', {
|
|
// name: 'MiB',
|
|
// });
|
|
// await user.click(mibButton);
|
|
// await clickNext();
|
|
|
|
// screen.getByText(
|
|
// /Images built with Image Builder include all required packages/i
|
|
// );
|
|
|
|
// const searchbox = screen.getAllByRole('textbox')[0]; // searching by id doesn't update the input ref
|
|
|
|
// await waitFor(() => expect(searchbox).toBeEnabled());
|
|
|
|
// await searchForAvailablePackages(searchbox, 'test');
|
|
// await user.click(
|
|
// await screen.findByRole('option', {
|
|
// name: /test summary for test package/,
|
|
// })
|
|
// );
|
|
// await user.click(screen.getByRole('button', { name: /Add selected/ }));
|
|
// await clickNext();
|
|
|
|
// // Custom repositories
|
|
// await user.click(
|
|
// await screen.findByRole('checkbox', { name: /select row 0/i })
|
|
// );
|
|
// await user.click(
|
|
// await screen.findByRole('checkbox', { name: /select row 1/i })
|
|
// );
|
|
|
|
// await clickNext();
|
|
// // Custom packages
|
|
// await clickNext();
|
|
|
|
// // Enter image name
|
|
// const nameInput = screen.getByRole('textbox', {
|
|
// name: 'Image Name',
|
|
// });
|
|
|
|
// await user.type(nameInput, 'my-image-name');
|
|
|
|
// // Enter description for image
|
|
// const descriptionInput = screen.getByRole('textbox', {
|
|
// name: /Description/,
|
|
// });
|
|
// await user.type(
|
|
// descriptionInput,
|
|
// 'this is a perfect description for image'
|
|
// );
|
|
// await clickNext();
|
|
|
|
// // review
|
|
// const targetEnvironmentsExpandable = await screen.findByTestId(
|
|
// 'target-environments-expandable'
|
|
// );
|
|
// await user.click(targetEnvironmentsExpandable);
|
|
// await screen.findAllByText('AWS');
|
|
// await screen.findAllByText('GCP');
|
|
// await screen.findByText('VMware vSphere (.ova)');
|
|
// await screen.findByText('Virtualization - Guest image (.qcow2)');
|
|
// await screen.findByText('Bare metal - Installer (.iso)');
|
|
|
|
// const registrationExpandable = await screen.findByTestId(
|
|
// 'registration-expandable'
|
|
// );
|
|
// await user.click(registrationExpandable);
|
|
// const review = screen.getByTestId('review-registration');
|
|
// expect(review).toHaveTextContent(
|
|
// 'Use remote host configuration (rhc) utility'
|
|
// );
|
|
|
|
// const imageDetailsExpandable = await screen.findByTestId(
|
|
// 'image-details-expandable'
|
|
// );
|
|
// await user.click(imageDetailsExpandable);
|
|
// await screen.findByText('my-image-name');
|
|
// await screen.findByText('this is a perfect description for image');
|
|
|
|
// await screen.findByText('name0');
|
|
// await screen.findByText('Self-Support');
|
|
// await screen.findByText('Production');
|
|
|
|
// await user.click(screen.getByTestId('repositories-popover-button'));
|
|
// const repotbody = await screen.findByTestId(
|
|
// 'additional-repositories-table'
|
|
// );
|
|
// expect(within(repotbody).getAllByRole('row')).toHaveLength(3);
|
|
|
|
// await user.click(screen.getByTestId('file-system-configuration-popover'));
|
|
// const revtbody = await screen.findByTestId(
|
|
// 'file-system-configuration-tbody-review'
|
|
// );
|
|
// expect(within(revtbody).getAllByRole('row')).toHaveLength(3);
|
|
|
|
// // mock the backend API
|
|
// const payload_repos = [
|
|
// {
|
|
// baseurl: 'http://yum.theforeman.org/releases/3.4/el8/x86_64/',
|
|
// check_gpg: true,
|
|
// check_repo_gpg: false,
|
|
// gpgkey:
|
|
// '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
|
// rhsm: false,
|
|
// },
|
|
// {
|
|
// baseurl:
|
|
// 'http://mirror.stream.centos.org/SIGs/8/kmods/x86_64/packages-main/',
|
|
// check_gpg: false,
|
|
// rhsm: false,
|
|
// },
|
|
// ];
|
|
|
|
// const custom_repos = [
|
|
// {
|
|
// baseurl: ['http://yum.theforeman.org/releases/3.4/el8/x86_64/'],
|
|
// check_gpg: true,
|
|
// check_repo_gpg: false,
|
|
// gpgkey: [
|
|
// '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
|
// ],
|
|
// id: 'dbad4dfc-1547-45f8-b5af-1d7fec0476c6',
|
|
// name: '13lk3',
|
|
// },
|
|
// {
|
|
// baseurl: [
|
|
// 'http://mirror.stream.centos.org/SIGs/8/kmods/x86_64/packages-main/',
|
|
// ],
|
|
// check_gpg: false,
|
|
// id: '9cf1d45d-aa06-46fe-87ea-121845cc6bbb',
|
|
// name: '2lmdtj',
|
|
// },
|
|
// ];
|
|
|
|
// const cust = {
|
|
// filesystem: [
|
|
// {
|
|
// mountpoint: '/',
|
|
// min_size: 10737418240,
|
|
// },
|
|
// {
|
|
// mountpoint: '/home',
|
|
// min_size: 1073741824,
|
|
// },
|
|
// {
|
|
// mountpoint: '/var/tmp',
|
|
// min_size: 104857600,
|
|
// },
|
|
// ],
|
|
// custom_repositories: custom_repos,
|
|
// payload_repositories: payload_repos,
|
|
// packages: ['test'],
|
|
// subscription: {
|
|
// 'activation-key': 'name0',
|
|
// insights: true,
|
|
// rhc: true,
|
|
// organization: 5,
|
|
// 'server-url': 'subscription.rhsm.redhat.com',
|
|
// 'base-url': 'https://cdn.redhat.com/',
|
|
// },
|
|
// };
|
|
|
|
// const expectedComposeReqs = {
|
|
// aws: {
|
|
// distribution: RHEL_8,
|
|
// image_name: 'my-image-name',
|
|
// image_description: 'this is a perfect description for image',
|
|
// image_requests: [
|
|
// {
|
|
// architecture: 'x86_64',
|
|
// image_type: 'aws',
|
|
// upload_request: {
|
|
// type: 'aws',
|
|
// options: {
|
|
// share_with_accounts: ['012345678901'],
|
|
// },
|
|
// },
|
|
// },
|
|
// ],
|
|
// client_id: 'ui',
|
|
// customizations: cust,
|
|
// },
|
|
// gcp: {
|
|
// distribution: RHEL_8,
|
|
// image_name: 'my-image-name',
|
|
// image_description: 'this is a perfect description for image',
|
|
// image_requests: [
|
|
// {
|
|
// architecture: 'x86_64',
|
|
// image_type: 'gcp',
|
|
// upload_request: {
|
|
// type: 'gcp',
|
|
// options: {
|
|
// share_with_accounts: ['user:test@test.com'],
|
|
// },
|
|
// },
|
|
// },
|
|
// ],
|
|
// client_id: 'ui',
|
|
// customizations: cust,
|
|
// },
|
|
// azure: {
|
|
// distribution: RHEL_8,
|
|
// image_name: 'my-image-name',
|
|
// image_description: 'this is a perfect description for image',
|
|
// image_requests: [
|
|
// {
|
|
// architecture: 'x86_64',
|
|
// image_type: 'azure',
|
|
// upload_request: {
|
|
// type: 'azure',
|
|
// options: {
|
|
// tenant_id: 'b8f86d22-4371-46ce-95e7-65c415f3b1e2',
|
|
// subscription_id: '60631143-a7dc-4d15-988b-ba83f3c99711',
|
|
// resource_group: 'testResourceGroup',
|
|
// },
|
|
// },
|
|
// },
|
|
// ],
|
|
// client_id: 'ui',
|
|
// customizations: cust,
|
|
// },
|
|
// 'vsphere-ova': {
|
|
// distribution: RHEL_8,
|
|
// image_name: 'my-image-name',
|
|
// image_description: 'this is a perfect description for image',
|
|
// image_requests: [
|
|
// {
|
|
// architecture: 'x86_64',
|
|
// image_type: 'vsphere-ova',
|
|
// upload_request: {
|
|
// type: 'aws.s3',
|
|
// options: {},
|
|
// },
|
|
// },
|
|
// ],
|
|
// client_id: 'ui',
|
|
// customizations: cust,
|
|
// },
|
|
// 'guest-image': {
|
|
// distribution: RHEL_8,
|
|
// image_name: 'my-image-name',
|
|
// image_description: 'this is a perfect description for image',
|
|
// image_requests: [
|
|
// {
|
|
// architecture: 'x86_64',
|
|
// image_type: 'guest-image',
|
|
// upload_request: {
|
|
// type: 'aws.s3',
|
|
// options: {},
|
|
// },
|
|
// },
|
|
// ],
|
|
// client_id: 'ui',
|
|
// customizations: cust,
|
|
// },
|
|
// 'image-installer': {
|
|
// distribution: RHEL_8,
|
|
// image_name: 'my-image-name',
|
|
// image_description: 'this is a perfect description for image',
|
|
// image_requests: [
|
|
// {
|
|
// architecture: 'x86_64',
|
|
// image_type: 'image-installer',
|
|
// upload_request: {
|
|
// type: 'aws.s3',
|
|
// options: {},
|
|
// },
|
|
// },
|
|
// ],
|
|
// client_id: 'ui',
|
|
// customizations: cust,
|
|
// },
|
|
// };
|
|
|
|
// let timesCalled = 0;
|
|
// const receivedComposeReqs = {};
|
|
|
|
// server.use(
|
|
// rest.post(`${IMAGE_BUILDER_API}/compose`, (req, res, ctx) => {
|
|
// timesCalled += 1;
|
|
// receivedComposeReqs[req.body.image_requests[0].image_type] = req.body;
|
|
// return res(
|
|
// ctx.status(201),
|
|
// ctx.json({
|
|
// id: 'edbae1c2-62bc-42c1-ae0c-3110ab718f5b',
|
|
// })
|
|
// );
|
|
// })
|
|
// );
|
|
// await user.click(screen.getByRole('button', { name: /Create/ }));
|
|
|
|
// expect(receivedComposeReqs).toEqual(expectedComposeReqs);
|
|
// expect(timesCalled).toEqual(6);
|
|
|
|
// // returns back to the landing page
|
|
// await waitFor(() =>
|
|
// expect(router.state.location.pathname).toBe('/insights/image-builder')
|
|
// );
|
|
|
|
// // set test timeout of 20 seconds
|
|
// }, 20000);
|
|
// });
|
|
|
|
// describe('Keyboard accessibility', () => {
|
|
// const user = userEvent.setup();
|
|
// const setUp = async () => {
|
|
// ({ router } = await renderCustomRoutesWithReduxRouter(
|
|
// 'imagewizard',
|
|
// {},
|
|
// routes
|
|
// ));
|
|
// await clickNext();
|
|
// };
|
|
|
|
// const selectAllEnvironments = async () => {
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
// await user.click(screen.getByTestId('upload-google'));
|
|
// await user.click(screen.getByTestId('upload-azure'));
|
|
// await user.click(
|
|
// screen.getByRole('checkbox', {
|
|
// name: /virtualization guest image checkbox/i,
|
|
// })
|
|
// );
|
|
// };
|
|
|
|
// test('autofocus on each step first input element', async () => {
|
|
// await setUp();
|
|
|
|
// // Image output
|
|
// await selectAllEnvironments();
|
|
// await clickNext();
|
|
|
|
// // Target environment aws
|
|
// expect(screen.getByTestId('aws-radio-source')).toHaveFocus();
|
|
// const awsSourceDropdown = await getSourceDropdown();
|
|
// await user.click(awsSourceDropdown);
|
|
// const awsSource = await screen.findByRole('option', {
|
|
// name: /my_source/i,
|
|
// });
|
|
// await user.click(awsSource);
|
|
|
|
// await clickNext();
|
|
|
|
// // Target environment google
|
|
// await user.click(await screen.findByTestId('account-sharing'));
|
|
// expect(await screen.findByTestId('account-sharing')).toHaveFocus();
|
|
// await user.type(
|
|
// await screen.findByTestId('input-google-email'),
|
|
// 'test@test.com'
|
|
// );
|
|
// await clickNext();
|
|
|
|
// // Target environment azure
|
|
// expect(screen.getByTestId('azure-radio-source')).toHaveFocus();
|
|
// const azureSourceDropdown = await getSourceDropdown();
|
|
// await user.click(azureSourceDropdown);
|
|
// const azureSource = await screen.findByRole('option', {
|
|
// name: /azureSource1/i,
|
|
// });
|
|
// await user.click(azureSource);
|
|
|
|
// const resourceGroupDropdown = await screen.findByRole('textbox', {
|
|
// name: /select resource group/i,
|
|
// });
|
|
// await user.click(resourceGroupDropdown);
|
|
// await user.click(screen.getByLabelText('Resource group myResourceGroup1'));
|
|
// await clickNext();
|
|
|
|
// // Registration
|
|
// await screen.findByText(
|
|
// 'Automatically register and enable advanced capabilities'
|
|
// );
|
|
// const registerRadio = screen.getByTestId('registration-radio-now');
|
|
// expect(registerRadio).toHaveFocus();
|
|
// await screen.findByRole('textbox', {
|
|
// name: 'Select activation key',
|
|
// });
|
|
// // skip registration
|
|
// const registerLaterRadio = screen.getByTestId('registration-radio-later');
|
|
// await user.click(registerLaterRadio);
|
|
|
|
// await clickNext();
|
|
|
|
// // File system configuration
|
|
// await clickNext();
|
|
|
|
// // Packages
|
|
// const view = screen.getByTestId('search-available-pkgs-input');
|
|
|
|
// const availablePackagesInput = within(view).getByRole('textbox', {
|
|
// name: /search input/i,
|
|
// });
|
|
// await waitFor(() => expect(availablePackagesInput).toBeEnabled());
|
|
// expect(availablePackagesInput).toHaveFocus();
|
|
// await clickNext();
|
|
|
|
// // TODO: what should have focus on Custom Repos step?
|
|
// await clickNext();
|
|
|
|
// // Name
|
|
// const nameInput = screen.getByRole('textbox', { name: /image name/i });
|
|
// expect(nameInput).toHaveFocus();
|
|
// await clickNext();
|
|
// });
|
|
|
|
// test('pressing Esc closes the wizard', async () => {
|
|
// await setUp();
|
|
// // wizard needs to be interacted with for the esc key to work
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
// await user.keyboard('{escape}');
|
|
// expect(router.state.location.pathname).toBe('/insights/image-builder');
|
|
// });
|
|
|
|
// test('pressing Enter does not advance the wizard', async () => {
|
|
// await setUp();
|
|
// await waitFor(
|
|
// async () => await user.click(await screen.findByTestId('upload-aws'))
|
|
// );
|
|
// await user.keyboard('{enter}');
|
|
// screen.getByRole('heading', {
|
|
// name: /image output/i,
|
|
// });
|
|
// });
|
|
|
|
// test('target environment tiles are keyboard selectable', async () => {
|
|
// const testTile = async (tile) => {
|
|
// tile.focus();
|
|
// await user.keyboard('{space}');
|
|
// expect(tile).toHaveClass('pf-m-selected');
|
|
// await user.keyboard('{space}');
|
|
// expect(tile).not.toHaveClass('pf-m-selected');
|
|
// };
|
|
|
|
// await setUp();
|
|
// await clickNext();
|
|
|
|
// await waitFor(() => screen.findByTestId('upload-aws'));
|
|
// testTile(screen.getByTestId('upload-aws'));
|
|
// testTile(screen.getByTestId('upload-google'));
|
|
// testTile(screen.getByTestId('upload-azure'));
|
|
// });
|
|
// });
|