diff --git a/src/test/Components/CreateImageWizard/steps/Repositories/Repositories.test.tsx b/src/test/Components/CreateImageWizard/steps/Repositories/Repositories.test.tsx index 289c3353..99612a72 100644 --- a/src/test/Components/CreateImageWizard/steps/Repositories/Repositories.test.tsx +++ b/src/test/Components/CreateImageWizard/steps/Repositories/Repositories.test.tsx @@ -1,9 +1,6 @@ -import React from 'react'; - import { screen, waitFor, within } from '@testing-library/react'; import { userEvent } from '@testing-library/user-event'; -import CreateImageWizard from '../../../../../Components/CreateImageWizard/CreateImageWizard'; import { CREATE_BLUEPRINT, EDIT_BLUEPRINT } from '../../../../../constants'; import { CreateBlueprintRequest, @@ -16,7 +13,6 @@ import { expectedPayloadRepositories, repositoriesCreateBlueprintRequest, } from '../../../../fixtures/editMode'; -import { renderCustomRoutesWithReduxRouter } from '../../../../testUtils'; import { clickBack, clickNext, @@ -64,19 +60,25 @@ const clickRevisitButton = async () => { await waitFor(() => user.click(revisitButton)); }; -const selectFirstRepository = async () => { - const user = userEvent.setup(); - const row0Checkbox = await screen.findByRole('checkbox', { +const getFirstRepoCheckbox = async () => + await screen.findByRole('checkbox', { name: /select row 0/i, }); + +const getSecondRepoCheckbox = async () => + await screen.findByRole('checkbox', { + name: /select row 1/i, + }); + +const selectFirstRepository = async () => { + const user = userEvent.setup(); + const row0Checkbox = await getFirstRepoCheckbox(); await waitFor(async () => user.click(row0Checkbox)); }; const deselectFirstRepository = async () => { const user = userEvent.setup(); - const row0Checkbox = await screen.findByRole('checkbox', { - name: /select row 0/i, - }); + const row0Checkbox = await getFirstRepoCheckbox(); await waitFor(async () => user.click(row0Checkbox)); }; @@ -88,16 +90,21 @@ const clickBulkSelect = async () => { await waitFor(async () => user.click(bulkSelectCheckbox)); }; -const routes = [ - { - path: 'insights/image-builder/*', - element:
, - }, - { - path: 'insights/image-builder/imagewizard/:composeId?', - element: , - }, -]; +const toggleSelected = async () => { + const user = userEvent.setup(); + const selectedButton = await screen.findByRole('button', { + name: /selected repositories/i, + }); + await waitFor(async () => user.click(selectedButton)); +}; + +const toggleAll = async () => { + const user = userEvent.setup(); + const allButton = await screen.findByRole('button', { + name: /all repositories/i, + }); + user.click(allButton); +}; describe('Step Custom repositories', () => { beforeEach(() => { @@ -105,55 +112,11 @@ describe('Step Custom repositories', () => { }); const user = userEvent.setup(); - const setUp = async () => { - await renderCustomRoutesWithReduxRouter('imagewizard', {}, routes); - - // select aws as upload destination - const uploadAws = await screen.findByTestId('upload-aws'); - user.click(uploadAws); - await clickNext(); - - // aws step - const manualOption = await screen.findByRole('radio', { - name: /manually enter an account id\./i, - }); - await waitFor(() => user.click(manualOption)); - await waitFor(async () => - user.type( - await screen.findByRole('textbox', { - name: 'aws account id', - }), - '012345678901' - ) - ); - - await clickNext(); - // skip registration - await screen.findByRole('textbox', { - name: 'Select activation key', - }); - - const registrationCheckbox = await screen.findByTestId( - 'automatically-register-checkbox' - ); - - user.click(registrationCheckbox); - await clickNext(); - // skip OpenSCAP - await clickNext(); - // skip fsc - await clickNext(); - // skip snapshots - await clickNext(); - }; test('selected repositories stored in and retrieved from form state', async () => { - await setUp(); + await renderCreateMode(); + await goToRepositoriesStep(); - const getFirstRepoCheckbox = async () => - await screen.findByRole('checkbox', { - name: /select row 0/i, - }); let firstRepoCheckbox = (await getFirstRepoCheckbox()) as HTMLInputElement; expect(firstRepoCheckbox.checked).toEqual(false); @@ -165,27 +128,23 @@ describe('Step Custom repositories', () => { firstRepoCheckbox = (await getFirstRepoCheckbox()) as HTMLInputElement; await waitFor(() => expect(firstRepoCheckbox.checked).toEqual(true)); - }, 30000); + }); test('correct number of repositories is fetched', async () => { - await setUp(); + await renderCreateMode(); + await goToRepositoriesStep(); const select = await screen.findByRole('button', { name: /^select$/i, }); - user.click(select); - await screen.findByText(/select page \(10 items\)/i); }); test('press on Selected button to see selected repositories list', async () => { - await setUp(); + await renderCreateMode(); + await goToRepositoriesStep(); - const getFirstRepoCheckbox = async () => - await screen.findByRole('checkbox', { - name: /select row 0/i, - }); const firstRepoCheckbox = (await getFirstRepoCheckbox()) as HTMLInputElement; @@ -193,13 +152,7 @@ describe('Step Custom repositories', () => { user.click(firstRepoCheckbox); await waitFor(() => expect(firstRepoCheckbox.checked).toEqual(true)); - const getSelectedButton = async () => - await screen.findByRole('button', { - name: /selected repositories/i, - }); - - const selectedButton = await getSelectedButton(); - user.click(selectedButton); + await toggleSelected(); expect(firstRepoCheckbox.checked).toEqual(true); @@ -209,19 +162,11 @@ describe('Step Custom repositories', () => { }); test('press on All button to see all repositories list', async () => { - await setUp(); + await renderCreateMode(); + await goToRepositoriesStep(); - const getFirstRepoCheckbox = async () => - await screen.findByRole('checkbox', { - name: /select row 0/i, - }); const firstRepoCheckbox = (await getFirstRepoCheckbox()) as HTMLInputElement; - - const getSecondRepoCheckbox = async () => - await screen.findByRole('checkbox', { - name: /select row 1/i, - }); const secondRepoCheckbox = (await getSecondRepoCheckbox()) as HTMLInputElement; @@ -231,13 +176,7 @@ describe('Step Custom repositories', () => { await waitFor(() => expect(firstRepoCheckbox.checked).toEqual(true)); expect(secondRepoCheckbox.checked).toEqual(false); - const getAllButton = async () => - await screen.findByRole('button', { - name: /all repositories/i, - }); - - const allButton = await getAllButton(); - user.click(allButton); + await toggleAll(); expect(firstRepoCheckbox.checked).toEqual(true); expect(secondRepoCheckbox.checked).toEqual(false); @@ -316,7 +255,7 @@ describe('Step Custom repositories', () => { }); }); -describe('repositories request generated correctly', () => { +describe('Repositories request generated correctly', () => { beforeEach(() => { vi.clearAllMocks(); });