CreateImageWizardV2: add tests for package groups
This commit is contained in:
parent
7759c122df
commit
e37782ebf6
3 changed files with 70 additions and 0 deletions
|
|
@ -77,6 +77,13 @@ const searchForPackage = async () => {
|
|||
await userEvent.type(searchBox, 'test');
|
||||
};
|
||||
|
||||
const searchForGroup = async () => {
|
||||
const searchBox = await screen.findByRole('textbox', {
|
||||
name: /search packages/i,
|
||||
});
|
||||
await userEvent.type(searchBox, '@grouper');
|
||||
};
|
||||
|
||||
const selectFirstPackage = async () => {
|
||||
await userEvent.click(
|
||||
await screen.findByRole('checkbox', { name: /select row 0/i })
|
||||
|
|
@ -145,6 +152,38 @@ describe('packages request generated correctly', () => {
|
|||
|
||||
expect(receivedRequest).toEqual(expectedRequest);
|
||||
});
|
||||
|
||||
test('with custom groups', async () => {
|
||||
await renderCreateMode();
|
||||
await goToPackagesStep();
|
||||
await searchForGroup();
|
||||
await selectFirstPackage();
|
||||
await goToReviewStep();
|
||||
|
||||
const receivedRequest = await interceptBlueprintRequest(CREATE_BLUEPRINT);
|
||||
|
||||
const expectedRequest: CreateBlueprintRequest = {
|
||||
...blueprintRequest,
|
||||
customizations: {
|
||||
packages: ['@grouper'],
|
||||
},
|
||||
};
|
||||
expect(receivedRequest).toEqual(expectedRequest);
|
||||
});
|
||||
|
||||
test('deselecting a group removes it from the request', async () => {
|
||||
await renderCreateMode();
|
||||
await goToPackagesStep();
|
||||
await searchForGroup();
|
||||
await selectFirstPackage();
|
||||
await switchToSelected();
|
||||
await deselectFirstPackage();
|
||||
await goToReviewStep();
|
||||
|
||||
const receivedRequest = await interceptBlueprintRequest(CREATE_BLUEPRINT);
|
||||
const expectedRequest = blueprintRequest;
|
||||
expect(receivedRequest).toEqual(expectedRequest);
|
||||
});
|
||||
});
|
||||
|
||||
describe('package recommendations', () => {
|
||||
|
|
|
|||
20
src/test/fixtures/packages.ts
vendored
20
src/test/fixtures/packages.ts
vendored
|
|
@ -1,5 +1,6 @@
|
|||
import {
|
||||
ApiRepositoryRpm,
|
||||
ApiSearchPackageGroupResponse,
|
||||
ApiSearchRpmResponse,
|
||||
} from '../../store/contentSourcesApi';
|
||||
import { RecommendPackageApiResponse } from '../../store/imageBuilderApi';
|
||||
|
|
@ -66,6 +67,25 @@ export const mockSourcesPackagesResults = (
|
|||
return [];
|
||||
};
|
||||
|
||||
export const mockSourcesGroupsResults = (
|
||||
search: string,
|
||||
urls: string[]
|
||||
): ApiSearchPackageGroupResponse[] => {
|
||||
const isDistroPkgSearch =
|
||||
urls.filter((u) => u.includes('cdn.redhat.com')).length > 0;
|
||||
if (isDistroPkgSearch && search === 'grouper') {
|
||||
return [
|
||||
{
|
||||
description: '',
|
||||
id: 'grouper',
|
||||
package_group_name: 'Grouper group',
|
||||
package_list: ['fish1', 'fish2'],
|
||||
},
|
||||
];
|
||||
}
|
||||
return [];
|
||||
};
|
||||
|
||||
export const mockPkgResultAlphaContentSources: ApiRepositoryRpm[] = [
|
||||
{
|
||||
name: 'lib-test',
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import {
|
|||
import {
|
||||
mockPkgRecommendations,
|
||||
mockSourcesPackagesResults,
|
||||
mockSourcesGroupsResults,
|
||||
} from '../fixtures/packages';
|
||||
import {
|
||||
mockPopularRepo,
|
||||
|
|
@ -64,6 +65,16 @@ export const handlers = [
|
|||
ctx.json(mockSourcesPackagesResults(search, urls))
|
||||
);
|
||||
}),
|
||||
rest.post(
|
||||
`${CONTENT_SOURCES_API}/package_groups/names`,
|
||||
async (req, res, ctx) => {
|
||||
const { search, urls } = await req.json();
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json(mockSourcesGroupsResults(search, urls))
|
||||
);
|
||||
}
|
||||
),
|
||||
rest.get(`${CONTENT_SOURCES_API}/features/`, async (req, res, ctx) => {
|
||||
return res(ctx.status(200), ctx.json(mockedFeatureResponse));
|
||||
}),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue