Update message for missing EE for Job pages

Update message for missing EE for Job pages

See: https://github.com/ansible/awx/issues/10355
This commit is contained in:
nixocio 2021-06-04 13:22:34 -04:00
parent c34fa30ea7
commit 310cc2fd03
5 changed files with 49 additions and 10 deletions

View File

@ -17,9 +17,10 @@ const ExclamationTriangleIcon = styled(PFExclamationTriangleIcon)`
`;
function ExecutionEnvironmentDetail({
virtualEnvironment,
executionEnvironment,
isDefaultEnvironment,
virtualEnvironment,
verifyMissingVirtualEnv,
}) {
const label = isDefaultEnvironment
? t`Default Execution Environment`
@ -40,7 +41,7 @@ function ExecutionEnvironmentDetail({
/>
);
}
if (virtualEnvironment && !executionEnvironment) {
if (verifyMissingVirtualEnv && virtualEnvironment && !executionEnvironment) {
return (
<Detail
label={label}
@ -61,6 +62,31 @@ function ExecutionEnvironmentDetail({
/>
);
}
if (
!verifyMissingVirtualEnv &&
!virtualEnvironment &&
!executionEnvironment
) {
return (
<Detail
label={t`Execution Environment`}
value={
<>
{t`Missing resource`}
<span>
<Tooltip
content={t`Execution environment is missing or deleted.`}
>
<ExclamationTriangleIcon />
</Tooltip>
</span>
</>
}
dataCy="execution-environment-detail"
/>
);
}
return null;
}
@ -68,12 +94,14 @@ ExecutionEnvironmentDetail.propTypes = {
executionEnvironment: ExecutionEnvironment,
isDefaultEnvironment: bool,
virtualEnvironment: string,
verifyMissingVirtualEnv: bool,
};
ExecutionEnvironmentDetail.defaultProps = {
isDefaultEnvironment: false,
executionEnvironment: null,
virtualEnvironment: '',
verifyMissingVirtualEnv: true,
};
export default ExecutionEnvironmentDetail;

View File

@ -61,4 +61,19 @@ describe('<ExecutionEnvironmentDetail/>', () => {
`Custom virtual environment ${virtualEnvironment} must be replaced by an execution environment.`
);
});
test('should display warning deleted execution environment', async () => {
const wrapper = mountWithContexts(
<ExecutionEnvironmentDetail verifyMissingVirtualEnv={false} />
);
const executionEnvironment = wrapper.find('ExecutionEnvironmentDetail');
expect(executionEnvironment).toHaveLength(1);
expect(executionEnvironment.find('dt').text()).toEqual(
'Execution Environment'
);
expect(executionEnvironment.find('dd').text()).toEqual('Missing resource');
expect(wrapper.find('Tooltip').prop('content')).toEqual(
`Execution environment is missing or deleted.`
);
});
});

View File

@ -203,8 +203,8 @@ function JobListItem({
/>
)}
<ExecutionEnvironmentDetail
virtualEnvironment={job.custom_virtualenv}
executionEnvironment={execution_environment}
verifyMissingVirtualEnv={false}
/>
{credentials && credentials.length > 0 && (
<Detail

View File

@ -221,8 +221,8 @@ function JobDetail({ job }) {
<Detail label={t`Limit`} value={job.limit} />
<Detail label={t`Verbosity`} value={VERBOSITY[job.verbosity]} />
<ExecutionEnvironmentDetail
virtualEnvironment={job.custom_virtualenv}
executionEnvironment={executionEnvironment}
verifyMissingVirtualEnv={false}
/>
<Detail label={t`Execution Node`} value={job.execution_node} />
{instanceGroup && !instanceGroup?.is_container_group && (

View File

@ -71,12 +71,8 @@ describe('<JobDetail />', () => {
assertDetail('Machine Credential', 'SSH: Machine cred');
assertDetail('Source Control Branch', 'main');
const executionEnvironment = wrapper.find('ExecutionEnvironmentDetail');
expect(executionEnvironment).toHaveLength(1);
expect(executionEnvironment.find('dt').text()).toEqual(
'Execution Environment'
);
expect(executionEnvironment.find('dd').text()).toEqual(
assertDetail(
'Execution Environment',
mockJobData.summary_fields.execution_environment.name
);