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'));
//   });
// });
