V2 Wizard: Add Azure tests (HMS-2781)
Adds tests to verify that building an Azure image using either sources or manually entering the required info results in a correctly generated request.
This commit is contained in:
parent
1367de0684
commit
1607fda162
1 changed files with 170 additions and 0 deletions
|
|
@ -0,0 +1,170 @@
|
|||
import { screen } from '@testing-library/react';
|
||||
import { userEvent } from '@testing-library/user-event';
|
||||
|
||||
import { CREATE_BLUEPRINT } from '../../../../../../constants';
|
||||
import {
|
||||
CreateBlueprintRequest,
|
||||
ImageRequest,
|
||||
} from '../../../../../../store/imageBuilderApi';
|
||||
import { clickNext } from '../../../../../testUtils';
|
||||
import {
|
||||
blueprintRequest,
|
||||
clickRegisterLater,
|
||||
enterBlueprintName,
|
||||
interceptBlueprintRequest,
|
||||
render,
|
||||
} from '../../../wizardTestUtils';
|
||||
|
||||
jest.mock('@redhat-cloud-services/frontend-components/useChrome', () => ({
|
||||
useChrome: () => ({
|
||||
auth: {
|
||||
getUser: () => {
|
||||
return {
|
||||
identity: {
|
||||
internal: {
|
||||
org_id: 5,
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
isBeta: () => true,
|
||||
isProd: () => true,
|
||||
getEnvironment: () => 'prod',
|
||||
}),
|
||||
}));
|
||||
|
||||
const goToAzureStep = async () => {
|
||||
await clickNext();
|
||||
};
|
||||
|
||||
const goToReview = async () => {
|
||||
await clickNext(); // Register
|
||||
await clickRegisterLater();
|
||||
await clickNext(); // OpenSCAP
|
||||
await clickNext(); // File system customization
|
||||
await clickNext(); // Custom repositories
|
||||
await clickNext(); // Additional packages
|
||||
await clickNext(); // Details
|
||||
await enterBlueprintName();
|
||||
await clickNext(); // Review
|
||||
};
|
||||
|
||||
const selectAzureTarget = async () => {
|
||||
await render();
|
||||
const azureCard = await screen.findByTestId('upload-azure');
|
||||
await userEvent.click(azureCard);
|
||||
await clickNext();
|
||||
};
|
||||
|
||||
const selectSource = async () => {
|
||||
await userEvent.click(
|
||||
await screen.findByRole('textbox', {
|
||||
name: /select source/i,
|
||||
})
|
||||
);
|
||||
|
||||
await userEvent.click(
|
||||
await screen.findByRole('option', { name: /azureSource1/i })
|
||||
);
|
||||
};
|
||||
|
||||
const selectResourceGroup = async () => {
|
||||
await userEvent.click(
|
||||
await screen.findByRole('textbox', {
|
||||
name: /select resource group/i,
|
||||
})
|
||||
);
|
||||
|
||||
await userEvent.click(
|
||||
await screen.findByRole('option', { name: /myResourceGroup1/i })
|
||||
);
|
||||
};
|
||||
|
||||
const selectManuallyEnterInformation = async () => {
|
||||
await userEvent.click(
|
||||
await screen.findByText(/manually enter the account information\./i)
|
||||
);
|
||||
};
|
||||
|
||||
const enterTenantGuid = async () => {
|
||||
await userEvent.type(
|
||||
screen.getByRole('textbox', { name: /azure tenant guid/i }),
|
||||
'b8f86d22-4371-46ce-95e7-65c415f3b1e2'
|
||||
);
|
||||
};
|
||||
|
||||
const enterSubscriptionId = async () => {
|
||||
await userEvent.type(
|
||||
screen.getByRole('textbox', { name: /subscription id/i }),
|
||||
'60631143-a7dc-4d15-988b-ba83f3c99711'
|
||||
);
|
||||
};
|
||||
|
||||
const enterResourceGroup = async () => {
|
||||
await userEvent.type(
|
||||
screen.getByRole('textbox', { name: /resource group/i }),
|
||||
'testResourceGroup'
|
||||
);
|
||||
};
|
||||
|
||||
describe('azure image type request generated correctly', () => {
|
||||
test('using a source', async () => {
|
||||
await selectAzureTarget();
|
||||
await goToAzureStep();
|
||||
await selectSource();
|
||||
await selectResourceGroup();
|
||||
await goToReview();
|
||||
const receivedRequest = await interceptBlueprintRequest(CREATE_BLUEPRINT);
|
||||
|
||||
const expectedImageRequest: ImageRequest = {
|
||||
architecture: 'x86_64',
|
||||
image_type: 'azure',
|
||||
upload_request: {
|
||||
options: {
|
||||
source_id: '666',
|
||||
resource_group: 'myResourceGroup1',
|
||||
},
|
||||
type: 'azure',
|
||||
},
|
||||
};
|
||||
|
||||
const expectedRequest: CreateBlueprintRequest = {
|
||||
...blueprintRequest,
|
||||
image_requests: [expectedImageRequest],
|
||||
};
|
||||
|
||||
expect(receivedRequest).toEqual(expectedRequest);
|
||||
});
|
||||
|
||||
test('manually entering info', async () => {
|
||||
await selectAzureTarget();
|
||||
await goToAzureStep();
|
||||
await selectManuallyEnterInformation();
|
||||
await enterTenantGuid();
|
||||
await enterSubscriptionId();
|
||||
await enterResourceGroup();
|
||||
await goToReview();
|
||||
const receivedRequest = await interceptBlueprintRequest(CREATE_BLUEPRINT);
|
||||
|
||||
const expectedImageRequest: ImageRequest = {
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const expectedRequest: CreateBlueprintRequest = {
|
||||
...blueprintRequest,
|
||||
image_requests: [expectedImageRequest],
|
||||
};
|
||||
|
||||
expect(receivedRequest).toEqual(expectedRequest);
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue