Merge pull request #10845 from nixocio/ui_add_more_ids

Update Ids for Job Details page
This commit is contained in:
Jake McDermott
2021-08-10 10:39:28 -04:00
committed by GitHub
2 changed files with 83 additions and 17 deletions

View File

@@ -73,12 +73,13 @@ const getLaunchedByDetails = ({ summary_fields = {}, launch_type }) => {
return { link, value }; return { link, value };
}; };
export default function LaunchedByDetail({ job }) { export default function LaunchedByDetail({ job, dataCy = null }) {
const { value: launchedByValue, link: launchedByLink } = const { value: launchedByValue, link: launchedByLink } =
getLaunchedByDetails(job) || {}; getLaunchedByDetails(job) || {};
return ( return (
<Detail <Detail
dataCy={dataCy}
label={t`Launched By`} label={t`Launched By`}
value={ value={
launchedByLink ? ( launchedByLink ? (

View File

@@ -120,8 +120,9 @@ function JobDetail({ job }) {
return ( return (
<CardBody> <CardBody>
<DetailList> <DetailList>
<Detail label={t`Job ID`} value={job.id} /> <Detail dataCy="job-id" label={t`Job ID`} value={job.id} />
<Detail <Detail
dataCy="job-status"
fullWidth={Boolean(job.job_explanation)} fullWidth={Boolean(job.job_explanation)}
label={t`Status`} label={t`Status`}
value={ value={
@@ -133,10 +134,19 @@ function JobDetail({ job }) {
</StatusDetailValue> </StatusDetailValue>
} }
/> />
<Detail label={t`Started`} value={formatDateString(job.started)} /> <Detail
<Detail label={t`Finished`} value={formatDateString(job.finished)} /> dataCy="job-started-date"
label={t`Started`}
value={formatDateString(job.started)}
/>
<Detail
dataCy="job-finished-date"
label={t`Finished`}
value={formatDateString(job.finished)}
/>
{jobTemplate && ( {jobTemplate && (
<Detail <Detail
dataCy="job-template"
label={t`Job Template`} label={t`Job Template`}
value={ value={
<Link to={`/templates/job_template/${jobTemplate.id}`}> <Link to={`/templates/job_template/${jobTemplate.id}`}>
@@ -147,6 +157,7 @@ function JobDetail({ job }) {
)} )}
{workflowJobTemplate && ( {workflowJobTemplate && (
<Detail <Detail
dataCy="workflow-job-template"
label={t`Workflow Job Template`} label={t`Workflow Job Template`}
value={ value={
<Link <Link
@@ -159,6 +170,7 @@ function JobDetail({ job }) {
)} )}
{source_workflow_job && ( {source_workflow_job && (
<Detail <Detail
dataCy="source-workflow-job"
label={t`Source Workflow Job`} label={t`Source Workflow Job`}
value={ value={
<Link to={`/jobs/workflow/${source_workflow_job.id}`}> <Link to={`/jobs/workflow/${source_workflow_job.id}`}>
@@ -167,10 +179,15 @@ function JobDetail({ job }) {
} }
/> />
)} )}
<Detail label={t`Job Type`} value={jobTypes[job.type]} /> <Detail
<LaunchedByDetail job={job} /> dataCy="job-type"
label={t`Job Type`}
value={jobTypes[job.type]}
/>
<LaunchedByDetail dataCy="job-launched-by" job={job} />
{inventory && ( {inventory && (
<Detail <Detail
dataCy="job-inventory"
label={t`Inventory`} label={t`Inventory`}
value={ value={
<Link <Link
@@ -187,6 +204,7 @@ function JobDetail({ job }) {
)} )}
{inventory_source && ( {inventory_source && (
<Detail <Detail
dataCy="job-inventory-source"
label={t`Inventory Source`} label={t`Inventory Source`}
value={ value={
<Link <Link
@@ -199,7 +217,8 @@ function JobDetail({ job }) {
)} )}
{inventory_source && inventory_source.source === 'scm' && ( {inventory_source && inventory_source.source === 'scm' && (
<Detail <Detail
label={t`Project`} dataCy="job-inventory-source-project"
label={t`Inventory Source Project`}
value={ value={
<StatusDetailValue> <StatusDetailValue>
{source_project.status && ( {source_project.status && (
@@ -213,7 +232,11 @@ function JobDetail({ job }) {
/> />
)} )}
{project && ( {project && (
<Detail label={t`Project`} value={buildProjectDetailValue()} /> <Detail
dataCy="job-project"
label={t`Project`}
value={buildProjectDetailValue()}
/>
)} )}
{scmBranch && ( {scmBranch && (
<Detail <Detail
@@ -222,25 +245,44 @@ function JobDetail({ job }) {
value={scmBranch} value={scmBranch}
/> />
)} )}
<Detail label={t`Revision`} value={job.scm_revision} /> <Detail
<Detail label={t`Playbook`} value={job.playbook} /> dataCy="job-scm-revision"
<Detail label={t`Limit`} value={job.limit} /> label={t`Revision`}
<Detail label={t`Verbosity`} value={VERBOSITY[job.verbosity]} /> value={job.scm_revision}
/>
<Detail
dataCy="job-playbook"
label={t`Playbook`}
value={job.playbook}
/>
<Detail dataCy="job-limit" label={t`Limit`} value={job.limit} />
<Detail
dataCy="job-verbosity"
label={t`Verbosity`}
value={VERBOSITY[job.verbosity]}
/>
{job.type !== 'workflow_job' && !isJobRunning(job.status) && ( {job.type !== 'workflow_job' && !isJobRunning(job.status) && (
<ExecutionEnvironmentDetail <ExecutionEnvironmentDetail
dataCy="job-execution-environment"
executionEnvironment={executionEnvironment} executionEnvironment={executionEnvironment}
verifyMissingVirtualEnv={false} verifyMissingVirtualEnv={false}
/> />
)} )}
<Detail label={t`Execution Node`} value={job.execution_node} /> <Detail
dataCy="job-execution-node"
label={t`Execution Node`}
value={job.execution_node}
/>
{instanceGroup && !instanceGroup?.is_container_group && ( {instanceGroup && !instanceGroup?.is_container_group && (
<Detail <Detail
dataCy="job-instance-group"
label={t`Instance Group`} label={t`Instance Group`}
value={buildInstanceGroupLink(instanceGroup)} value={buildInstanceGroupLink(instanceGroup)}
/> />
)} )}
{instanceGroup && instanceGroup?.is_container_group && ( {instanceGroup && instanceGroup?.is_container_group && (
<Detail <Detail
dataCy="job-container-group"
label={t`Container Group`} label={t`Container Group`}
value={buildContainerGroupLink(instanceGroup)} value={buildContainerGroupLink(instanceGroup)}
/> />
@@ -248,16 +290,22 @@ function JobDetail({ job }) {
{typeof job.job_slice_number === 'number' && {typeof job.job_slice_number === 'number' &&
typeof job.job_slice_count === 'number' && ( typeof job.job_slice_count === 'number' && (
<Detail <Detail
dataCy="job-slice"
label={t`Job Slice`} label={t`Job Slice`}
value={`${job.job_slice_number}/${job.job_slice_count}`} value={`${job.job_slice_number}/${job.job_slice_count}`}
/> />
)} )}
{job.type === 'workflow_job' && job.is_sliced_job && ( {job.type === 'workflow_job' && job.is_sliced_job && (
<Detail label={t`Job Slice Parent`} value={t`True`} /> <Detail
dataCy="job-slice-parent"
label={t`Job Slice Parent`}
value={t`True`}
/>
)} )}
{credential && ( {credential && (
<Detail <Detail
dataCy="job-machine-credential"
label={t`Machine Credential`} label={t`Machine Credential`}
value={ value={
<ChipGroup numChips={5} totalChips={1}> <ChipGroup numChips={5} totalChips={1}>
@@ -272,6 +320,7 @@ function JobDetail({ job }) {
)} )}
{credentials && credentials.length > 0 && ( {credentials && credentials.length > 0 && (
<Detail <Detail
dataCy="job-credentials"
fullWidth fullWidth
label={t`Credentials`} label={t`Credentials`}
value={ value={
@@ -285,6 +334,7 @@ function JobDetail({ job }) {
)} )}
{labels && labels.count > 0 && ( {labels && labels.count > 0 && (
<Detail <Detail
dataCy="job-labels"
fullWidth fullWidth
label={t`Labels`} label={t`Labels`}
value={ value={
@@ -300,6 +350,7 @@ function JobDetail({ job }) {
)} )}
{job.job_tags && job.job_tags.length > 0 && ( {job.job_tags && job.job_tags.length > 0 && (
<Detail <Detail
dataCy="job-tags"
fullWidth fullWidth
label={t`Job Tags`} label={t`Job Tags`}
value={ value={
@@ -318,6 +369,7 @@ function JobDetail({ job }) {
)} )}
{job.skip_tags && job.skip_tags.length > 0 && ( {job.skip_tags && job.skip_tags.length > 0 && (
<Detail <Detail
dataCy="job-skip-tags"
fullWidth fullWidth
label={t`Skip Tags`} label={t`Skip Tags`}
value={ value={
@@ -334,14 +386,27 @@ function JobDetail({ job }) {
} }
/> />
)} )}
<Detail label={t`Module Name`} value={job.module_name} /> <Detail
<Detail label={t`Module Arguments`} value={job.module_args} /> dataCy="job-module-name"
label={t`Module Name`}
value={job.module_name}
/>
<Detail
dataCy="job-module-arguments"
label={t`Module Arguments`}
value={job.module_args}
/>
<UserDateDetail <UserDateDetail
dataCy="job-created"
label={t`Created`} label={t`Created`}
date={job.created} date={job.created}
user={created_by} user={created_by}
/> />
<UserDateDetail label={t`Last Modified`} date={job.modified} /> <UserDateDetail
dataCy="job-last-modified"
label={t`Last Modified`}
date={job.modified}
/>
</DetailList> </DetailList>
{job.extra_vars && ( {job.extra_vars && (
<VariablesInput <VariablesInput