Skip to content

Commit

Permalink
add e2e tests for SBOM section and output tab
Browse files Browse the repository at this point in the history
  • Loading branch information
karthikjeeyar committed Nov 15, 2023
1 parent 84d49e7 commit ec7d110
Show file tree
Hide file tree
Showing 8 changed files with 106 additions and 5 deletions.
Expand Up @@ -374,3 +374,16 @@ Feature: Pipeline Runs
When user starts the pipeline "pipeline-stop" in Pipeline Details page
And user selects option "Stop" from Actions menu drop down
Then status displays as "Cancelled" in pipeline run details page

@regression @odc-7420
Scenario: SBOM information on the pipelineRun detail page: P-07-TC36
Given user has created a pipelineRun with sbom task "pipelinerun-with-sbom-link"
When user navigates to PipelineRun Details page "pipelinerun-with-sbom-link"
Then user can see Download SBOM and View SBOM section in PipelineRun details page


@regression @odc-7423
Scenario: Output of the pipelinerun: P-07-TC37
Given user has created a pipelineRun with sbom task "pipelinerun-with-sbom-link"
When user navigates to output tab of pipelineRun details page "pipelinerun-with-sbom-link"
Then user can see the results in the output tab
Expand Up @@ -187,15 +187,19 @@ export const pipelineRunDetailsPO = {
detailsTab: '[data-test-id$="Details"]',
taskRunsTab: '[data-test-id="horizontal-link-TaskRuns"]',
parametersTab: '[data-test-id="horizontal-link-Parameters"]',
outputTab: '[data-test-id="horizontal-link-Output"]',
pipelineRunsResults: '[data-test-section-heading="PipelineRun results"]',
eventsTab: '[data-test-id$="Events"]',
pipelineRunStatus: '[data-test="resource-status"]',
statusMessage: '.odc-pipeline-run-details__customDetails',
details: {
pipelineLink: '[data-test-id="git-pipeline-events"]',
sectionTitle: '[data-test-section-heading="PipelineRun details"]',
outputTitle: '[data-test-section-heading="PipelineRun results"]',
pipelineRunDetails: 'div dl',
workspacesSection: '[data-test-id="workspace-resources-section"]',
viewSbomLink: '[data-test="view-sbom"]',
downloadSbomLink: '[data-test="download-sbom"]',
workspacesResources: {
volumeClaimTemplateResources: '[data-test-id="volumeClaimTemplate-resources-section"]',
emptyDirectory: '[data-test-id="empty-directory-workspace"]',
Expand Down
Expand Up @@ -139,6 +139,11 @@ export const pipelineRunDetailsPage = {
cy.url().should('include', 'parameters');
break;
}
case 'Output': {
cy.get(pipelineRunDetailsPO.outputTab).click();
cy.url().should('include', 'output');
break;
}
default: {
throw new Error('operator is not available');
}
Expand Down
Expand Up @@ -39,6 +39,9 @@ export const pipelinesPage = {
case pipelineTabs.Pipelines:
cy.byLegacyTestID('horizontal-link-Pipelines').click();
break;
case pipelineTabs.PipelineRuns:
cy.byLegacyTestID('horizontal-link-PipelineRuns').click();
break;
case pipelineTabs.Repositories:
cy.byLegacyTestID('horizontal-link-Repositories').click();
break;
Expand Down
Expand Up @@ -163,9 +163,12 @@ Then('user is able to see kebab menu options Rerun, Delete Pipeline Run', () =>
cy.byTestActionID('Delete PipelineRun').should('be.visible');
});

Then('user is able to see Details, YAML, TaskRuns, Parameters, Logs and Events tabs', () => {
pipelineRunDetailsPage.verifyTabs();
});
Then(
'user is able to see Details, YAML, TaskRuns, Parameters, Logs, Events and Output tabs',
() => {
pipelineRunDetailsPage.verifyTabs();
},
);

Then(
'Details tab is displayed with field names Name, Namespace, Labels, Annotations, Created At, Owner, Status, Pipeline and Triggered by',
Expand Down Expand Up @@ -672,3 +675,44 @@ When('user starts the pipeline {string} in Pipeline Details page', (pipelineName
modal.modalTitleShouldContain('Start Pipeline');
startPipelineInPipelinesPage.clickStart();
});

Given('user has created a pipelineRun with sbom task {string}', async (pipelineRunName: string) => {
cy.exec(`oc apply -f testData/sbom-pipelinerun/sbom-task.yaml -n ${Cypress.env('NAMESPACE')}`, {
failOnNonZeroExit: false,
}).then((result) => {
cy.exec(
`oc apply -f testData/sbom-pipelinerun/${pipelineRunName}.yaml -n ${Cypress.env(
'NAMESPACE',
)}`,
{
failOnNonZeroExit: false,
},
);
cy.log(result.stdout);
});
});

When('user navigates to PipelineRun Details page {string}', (pipelineRunName: string) => {
pipelinesPage.selectTab(pipelineTabs.PipelineRuns);

cy.byTestID(pipelineRunName).click();
});

Then('user can see Download SBOM and View SBOM section in PipelineRun details page', () => {
pipelineRunDetailsPage.verifyTitle();
cy.get(pipelineRunDetailsPO.details.viewSbomLink).should('be.visible');
cy.get(pipelineRunDetailsPO.details.downloadSbomLink).should('be.visible');
});

When(
'user navigates to output tab of pipelineRun details page {string}',
(pipelineRunName: string) => {
pipelinesPage.selectTab(pipelineTabs.PipelineRuns);
cy.byTestID(pipelineRunName).click();
pipelineRunDetailsPage.selectTab('Output');
},
);

Then('user can see the results in the output tab', () => {
cy.get(pipelineRunDetailsPO.details.outputTitle).should('be.visible');
});
@@ -0,0 +1,14 @@
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: pipelinerun-with-sbom-link
spec:
pipelineSpec:
tasks:
- name: sbom-task
taskRef:
name: sbom-task
results:
- name: LINK_TO_SBOM
description: Contains the SBOM link
value: $(tasks.sbom-task.results.LINK_TO_SBOM)
@@ -0,0 +1,18 @@
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: sbom-task
annotations:
task.output.location: results
task.results.format: application/text
task.results.key: LINK_TO_SBOM
spec:
results:
- name: LINK_TO_SBOM
description: Contains the SBOM link
steps:
- name: print-sbom-results
image: bash:latest
script: |
#!/usr/bin/env bash
echo 'quay.io/redhat-user-workloads/karthik-jk-tenant/node-express-hello/node-express-hello:build-8e536-1692702836' | tee $(results.LINK_TO_SBOM.path)
Expand Up @@ -66,7 +66,7 @@ const PipelineRunCustomDetails: React.FC<PipelineRunCustomDetailsProps> = ({ pip
</dd>
{buildImage && (
<>
<dt>{t('pipelines-plugin~Download SBOM')}</dt>
<dt data-test="download-sbom">{t('pipelines-plugin~Download SBOM')}</dt>
<dd>
<ClipboardCopy
isReadOnly
Expand All @@ -83,7 +83,7 @@ const PipelineRunCustomDetails: React.FC<PipelineRunCustomDetailsProps> = ({ pip
)}
{sbomTaskRun && (
<>
<dt>{t('pipelines-plugin~SBOM')}</dt>
<dt data-test="view-sbom">{t('pipelines-plugin~SBOM')}</dt>
<dd>
<Link
to={`/k8s/ns/${sbomTaskRun.metadata.namespace}/${referenceForModel(TaskRunModel)}/${
Expand Down

0 comments on commit ec7d110

Please sign in to comment.