Skip to content

Commit

Permalink
Merge pull request #11709 from sanketpathak/gherkin-support-buildsv2-…
Browse files Browse the repository at this point in the history
…odc-4981

Gherkin and automation of support builds v2 in Dev Console
  • Loading branch information
openshift-ci[bot] committed Jun 16, 2022
2 parents c832a49 + f90b45c commit 7500dbd
Show file tree
Hide file tree
Showing 15 changed files with 1,271 additions and 2 deletions.
@@ -0,0 +1,78 @@
@odc-4981
Feature: Shipwright build details page
As a user, I want check my Shipwright Build and see all related BuildRuns in a second tab.

Background:
Given user has installed OpenShift Pipelines Operator
And user is at developer perspective
And user has created or selected namespace "aut-shipwright-build-details"
And user has installed Shipwright Operator
And user is at Add page
And user has created shipwright builds


@smoke
Scenario: Shipwright build page in dev perspective: SWB-01-TC01
When user navigates to Builds in Developer perspective
And user clicks on "Shipwright Builds" tab
Then user will see Shipwright Builds
And user will see "Succeeded", "Failed" and "Unknown" in Filter list


@smoke
Scenario: Shipwright build page in admin perspective: SWB-01-TC02
When user switches to Administrative perspective
And user clicks on Builds navigation in Administrative perspective
Then user will see "Shipwright Builds" tab
Then user will see "Shipwright BuildRuns" tab


@regression
Scenario: Shipwright build details page: SWB-01-TC03
Given user is on Builds navigation in Developer perspective
When user clicks on "Shipwright Builds" tab
And user clicks on "buildpack-nodejs-build-heroku" build
Then user will see "Strategy", "Source URL" and "Output image"
And user will see "Status" section


@regression
Scenario: Event tab in build details page: SWB-01-TC04
Given user is at Shipwright Builds details page for build "buildpack-nodejs-build-heroku"
When user clicks on Event tab
Then user will see events steaming


@regression
Scenario: Filter in Shipwright build runs page: SWB-01-TC05
Given user is at Shipwright Builds details page for build "buildpack-nodejs-build-heroku"
When user clicks on "BuildRuns" tab
And user clicks on Filter
Then user will see "Pending", "Running", "Succeeded", "Failed" and "Unknown" options


@regression
Scenario: Shipwright build runs details page: SWB-01-TC06
Given user is at Shipwright Builds details page for build "buildpack-nodejs-build-heroku"
When user clicks on "BuildRuns" tab
And user clicks on build run "buildpack-nodejs-build-heroku-1"
Then user will see "BuildRun details" section
And user will see "Conditions" section
And user will see "Status", "Build" and "BuildSpec details" section in BuildRun details


@regression
Scenario: Event tab in build details page: SWB-01-TC07
Given user is at Shipwright Builds details page for build "buildpack-nodejs-build-heroku"
When user clicks on "BuildRuns" tab
And user clicks on build run "buildpack-nodejs-build-heroku-1"
And user clicks on Event tab
Then user will see events steaming


@regression
Scenario: Checking error for failed build runs : SWB-01-TC08
Given user is at Shipwright Builds run page "buildpack-nodejs-build-heroku"
And user has a failed build run
When user clicks on Failed Status
Then user will see pop up with error message
Expand Up @@ -37,6 +37,7 @@ export enum operators {
ServiceBinding = 'Service Binding Operator',
CrunchyPostgresforKubernetes = 'Crunchy Postgres for Kubernetes',
QuayContainerSecurity = 'Quay Container Security',
ShipwrightOperator = 'Shipwright Operator',
}

export enum authenticationType {
Expand Down
Expand Up @@ -14,6 +14,7 @@ export const pageTitle = {
Add: 'Add',
GitOPs: 'GitOps',
Observe: 'Observe',
Builds: 'Builds',
BuildConfigs: 'Build Configs',
Search: 'Search',
HelmReleases: 'Helm Releases',
Expand Down Expand Up @@ -54,4 +55,5 @@ export const pageTitle = {
KnativeEventings: 'KnativeEventings',
CreateRepository: 'Create Repository',
CustomResourceDefinitions: 'CustomResourceDefinitions',
ShipwrightBuild: 'ShipwrightBuild',
};
@@ -0,0 +1,22 @@
export const buildPO = {
admin: {
buildTab: '[data-quickstart-id="qs-nav-builds"]',
nav: '[data-test="nav"]',
},
filter: '[aria-label="Options menu"]',
filterList: '[aria-labelledby="Status"]',
pane: '.co-m-pane__body',
eventTab: '[data-test-id="horizontal-link-public~Events"]',
eventStream: '.co-sysevent-stream',
breadcrumb: '[aria-label="Breadcrumb"]',
failedFilter: '[data-test-row-filter="Failed"]',
dev: {
buildTab: '[aria-label="Builds"]',
},
shipwrightBuild: {
shipwrightBuildsTab: '[data-test-id="horizontal-link-Shipwright Builds"]',
shipwrightBuildRunsTab: '[data-test-id="horizontal-link-BuildRuns"]',
statusText: '[data-test="status-text"]',
},
popup: '[data-test="failure-popup"]',
};
Expand Up @@ -46,3 +46,4 @@ export const pagePO = {
create: '[data-test="item-create"]',
breadcrumb: '[aria-label="Breadcrumb"]',
};
export const resourceRow = '[data-test-rows="resource-row"]';
Expand Up @@ -42,6 +42,8 @@ export const operatorsPO = {
'[data-test="crunchy-postgres-operator-certified-operators-openshift-marketplace"]',
quayContainerSecurity:
'[data-test="container-security-operator-redhat-operators-openshift-marketplace"]',
shipwrightOperator:
'[data-test="shipwright-operator-community-operators-openshift-marketplace"]',
},
subscription: {
logo: 'h1.co-clusterserviceversion-logo__name__clusterserviceversion',
Expand All @@ -57,6 +59,7 @@ export const operatorsPO = {
knativeEventingLink: '[title="knativeeventings.operator.knative.dev"]',
operatorStatus: '[data-test="status-text"]',
checlusterCRLink: '[title="checlusters.org.eclipse.che"]',
shipwrightBuildLink: '[title="shipwrightbuilds.operator.shipwright.io"]',
},
sidePane: {
install: '[data-test-id="operator-install-btn"]',
Expand Down
Expand Up @@ -113,7 +113,7 @@ export const navigateTo = (opt: devNavigationMenu) => {
}
case devNavigationMenu.Builds: {
cy.get(devNavigationMenuPO.builds).click();
detailsPage.titleShouldContain(pageTitle.BuildConfigs);
detailsPage.titleShouldContain(pageTitle.Builds);
cy.testA11y('Builds Page in dev perspective');
break;
}
Expand Down
@@ -1,5 +1,6 @@
import { modal } from '@console/cypress-integration-tests/views/modal';
import { pipelinesPage } from '@console/pipelines-plugin/integration-tests/support/pages';
import { detailsPage } from '../../../../../integration-tests-cypress/views/details-page';
import { pageTitle, operators, switchPerspective } from '../../constants';
import { operatorsPO } from '../../pageObjects';
import { app, perspective, projectNameSpace, sidePane } from '../app';
Expand Down Expand Up @@ -139,6 +140,36 @@ const waitForPipelineTasks = (retries: number = 30) => {
});
};

const createShipwrightBuild = () => {
projectNameSpace.selectProject(Cypress.env('NAMESPACE'));
cy.get('body').then(($body) => {
if ($body.find(operatorsPO.installOperators.search)) {
cy.get(operatorsPO.installOperators.search)
.clear()
.type(operators.ShipwrightOperator);
}
});
cy.get(operatorsPO.installOperators.shipwrightBuildLink).click({ force: true });
cy.get('body').then(($body) => {
if ($body.text().includes('Page Not Found')) {
cy.reload();
}
});
detailsPage.titleShouldContain(pageTitle.ShipwrightBuild);
app.waitForLoad();
cy.get('body').then(($body) => {
if ($body.find('[role="grid"]').length > 0) {
cy.log(`${pageTitle.ShipwrightBuild} already subscribed`);
} else {
cy.byTestID('item-create').click();
detailsPage.titleShouldContain(pageTitle.ShipwrightBuild);
cy.byTestID('create-dynamic-form').click();
cy.byLegacyTestID('details-actions').should('be.visible');
cy.contains('Ready', { timeout: 150000 }).should('be.visible');
}
});
};

const performPostInstallationSteps = (operator: operators): void => {
switch (operator) {
case operators.ServerlessOperator:
Expand Down Expand Up @@ -168,6 +199,10 @@ const performPostInstallationSteps = (operator: operators): void => {
cy.log(`Performing Web Terminal post-installation steps`);
waitForCRDs(operators.WebTerminalOperator);
break;
case operators.ShipwrightOperator:
cy.log(`Performing Shipwright Operator post-installation steps`);
createShipwrightBuild();
break;
default:
cy.log(`Nothing to do in post-installation steps`);
}
Expand Down
Expand Up @@ -171,6 +171,11 @@ export const operatorsPage = {
cy.get(operatorsPO.operatorHub.quayContainerSecurity).click();
break;
}
case 'Shipwright Operator':
case operators.ShipwrightOperator: {
cy.get(operatorsPO.operatorHub.shipwrightOperator).click();
break;
}
default: {
throw new Error('operator is not available');
}
Expand Down

0 comments on commit 7500dbd

Please sign in to comment.