Skip to content

Commit df5acf5

Browse files
Merge pull request #15844 from rhamilto/OCPBUGS-68376
OCPBUGS-68376: fix routing issues on packageserver PackageManifest de…
2 parents 84d0b0c + bc06080 commit df5acf5

File tree

2 files changed

+101
-1
lines changed

2 files changed

+101
-1
lines changed

frontend/packages/operator-lifecycle-manager/console-extensions.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,6 @@
128128
{
129129
"type": "console.page/route",
130130
"properties": {
131-
"exact": true,
132131
"path": [
133132
"/k8s/ns/:ns/operators.coreos.com~v1alpha1~ClusterServiceVersion/:appName/:plural/:name",
134133
"/k8s/ns/:ns/clusterserviceversions/:appName/:plural/:name"
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
import { checkErrors } from '../../../integration-tests-cypress/support';
2+
import { detailsPage } from '../../../integration-tests-cypress/views/details-page';
3+
import * as yamlEditor from '../../../integration-tests-cypress/views/yaml-editor';
4+
5+
describe('packageserver PackageManifest tabs rendering', () => {
6+
const csvNamespace = 'openshift-operator-lifecycle-manager';
7+
const csvName = 'packageserver';
8+
const packageManifestName = '3scale-operator';
9+
const baseUrl = `/k8s/ns/${csvNamespace}/operators.coreos.com~v1alpha1~ClusterServiceVersion/${csvName}/packages.operators.coreos.com~v1~PackageManifest/${packageManifestName}`;
10+
const sectionHeader = 'PackageManifest overview';
11+
12+
before(() => {
13+
cy.login();
14+
});
15+
16+
afterEach(() => {
17+
checkErrors();
18+
});
19+
20+
it('renders Details tab correctly', () => {
21+
cy.log('navigate to PackageManifest Details tab');
22+
cy.visit(baseUrl);
23+
24+
cy.log('verify page loads successfully');
25+
detailsPage.isLoaded();
26+
27+
cy.log('verify page title shows package name');
28+
detailsPage.titleShouldContain(packageManifestName);
29+
30+
cy.log('verify Details section header exists');
31+
detailsPage.sectionHeaderShouldExist(sectionHeader);
32+
});
33+
34+
it('renders YAML tab correctly', () => {
35+
cy.log('navigate to PackageManifest YAML tab');
36+
cy.visit(`${baseUrl}/yaml`);
37+
38+
cy.log('verify YAML editor loads');
39+
yamlEditor.isLoaded();
40+
41+
cy.log('verify YAML contains package manifest metadata');
42+
// eslint-disable-next-line promise/catch-or-return
43+
yamlEditor.getEditorContent().then((content) => {
44+
expect(content).to.include(packageManifestName);
45+
expect(content).to.include('PackageManifest');
46+
});
47+
});
48+
49+
it('renders Resources tab correctly', () => {
50+
cy.log('navigate to PackageManifest Resources tab');
51+
cy.visit(`${baseUrl}/resources`);
52+
53+
cy.log('verify page loads successfully');
54+
detailsPage.isLoaded();
55+
56+
cy.log('verify resource list is empty');
57+
cy.byTestID('console-empty-state').should('exist');
58+
});
59+
60+
it('renders Events tab correctly', () => {
61+
cy.log('navigate to PackageManifest Events tab');
62+
cy.visit(`${baseUrl}/events`);
63+
64+
cy.log('verify page loads successfully');
65+
detailsPage.isLoaded();
66+
67+
cy.log('verify events stream component is empty');
68+
cy.byTestID('console-empty-state').should('exist');
69+
});
70+
71+
it('allows navigation between tabs', () => {
72+
cy.log('start at Details tab');
73+
cy.visit(baseUrl);
74+
detailsPage.isLoaded();
75+
76+
cy.log('navigate to YAML tab');
77+
detailsPage.selectTab('YAML');
78+
yamlEditor.isLoaded();
79+
cy.url().should('include', '/yaml');
80+
81+
cy.log('navigate to Resources tab');
82+
detailsPage.selectTab('Resources');
83+
detailsPage.isLoaded();
84+
cy.url().should('include', '/resources');
85+
cy.byTestID('console-empty-state').should('exist');
86+
87+
cy.log('navigate to Events tab');
88+
detailsPage.selectTab('Events');
89+
detailsPage.isLoaded();
90+
cy.url().should('include', '/events');
91+
cy.byTestID('console-empty-state').should('exist');
92+
93+
cy.log('navigate back to Details tab');
94+
detailsPage.selectTab('Details');
95+
detailsPage.isLoaded();
96+
cy.url().should('not.include', '/yaml');
97+
cy.url().should('not.include', '/resources');
98+
cy.url().should('not.include', '/events');
99+
detailsPage.sectionHeaderShouldExist(sectionHeader);
100+
});
101+
});

0 commit comments

Comments
 (0)