mirror of https://github.com/rancher/dashboard.git
125 lines
4.1 KiB
TypeScript
125 lines
4.1 KiB
TypeScript
import ExtensionsPagePo from '@/cypress/e2e/po/pages/extensions.po';
|
|
import { ChartsPage } from '@/cypress/e2e/po/pages/explorer/charts/charts.po';
|
|
import RepositoriesPagePo from '@/cypress/e2e/po/pages/chart-repositories.po';
|
|
import ProductNavPo from '@/cypress/e2e/po/side-bars/product-side-nav.po';
|
|
import KubewardenExtensionPo from '@/cypress/e2e/po/pages/extensions/kubewarden.po';
|
|
import { catchTargetPageException } from '@/cypress/support/utils/exception-utils';
|
|
|
|
const extensionName = 'kubewarden';
|
|
const gitRepoName = 'rancher-extensions';
|
|
let removeExtensions = false;
|
|
|
|
describe('Kubewarden Extension', { tags: ['@extensions', '@adminUser'] }, () => {
|
|
before(() => {
|
|
catchTargetPageException('Navigation cancelled');
|
|
cy.login();
|
|
|
|
const extensionsPo = new ExtensionsPagePo();
|
|
|
|
extensionsPo.goTo();
|
|
extensionsPo.waitForPage();
|
|
|
|
// install the ui-plugin-charts repo
|
|
extensionsPo.addExtensionsRepository('https://github.com/rancher/ui-plugin-charts', 'main', gitRepoName).then(() => {
|
|
removeExtensions = true;
|
|
});
|
|
});
|
|
|
|
beforeEach(() => {
|
|
cy.login();
|
|
});
|
|
|
|
it('Should install Kubewarden extension', () => {
|
|
const extensionsPo = new ExtensionsPagePo();
|
|
|
|
extensionsPo.goTo();
|
|
extensionsPo.waitForPage();
|
|
|
|
extensionsPo.extensionTabAvailableClick();
|
|
extensionsPo.waitForPage(null, 'available');
|
|
|
|
// click on install button on card
|
|
extensionsPo.extensionCardInstallClick(extensionName);
|
|
extensionsPo.extensionInstallModal().should('be.visible');
|
|
|
|
// click install
|
|
extensionsPo.installModalInstallClick();
|
|
|
|
// check the extension reload banner and reload the page
|
|
extensionsPo.extensionReloadBanner().should('be.visible');
|
|
extensionsPo.extensionReloadClick();
|
|
|
|
// make sure extension card is in the installed tab
|
|
extensionsPo.extensionTabInstalledClick();
|
|
extensionsPo.extensionCardClick(extensionName);
|
|
extensionsPo.extensionDetailsTitle().should('contain', extensionName);
|
|
extensionsPo.extensionDetailsCloseClick();
|
|
});
|
|
|
|
it('Check Apps/Charts and Apps/Repo pages for route collisions', () => {
|
|
const chartsPage: ChartsPage = new ChartsPage();
|
|
|
|
chartsPage.goTo();
|
|
chartsPage.waitForPage();
|
|
chartsPage.self().getId('charts-header-title').invoke('text').should('contain', 'Charts');
|
|
|
|
const appRepoList: RepositoriesPagePo = new RepositoriesPagePo('local', 'apps');
|
|
|
|
appRepoList.goTo();
|
|
appRepoList.waitForPage();
|
|
cy.get('h1').contains('Repositories').should('exist');
|
|
});
|
|
|
|
it('Side-nav should contain Kubewarden menu item', () => {
|
|
const kubewardenPo = new KubewardenExtensionPo();
|
|
const productMenu = new ProductNavPo();
|
|
|
|
kubewardenPo.goTo();
|
|
kubewardenPo.waitForPage();
|
|
|
|
const kubewardenNavItem = productMenu.groups().contains('Kubewarden');
|
|
|
|
kubewardenNavItem.should('exist');
|
|
kubewardenNavItem.click();
|
|
});
|
|
|
|
it('Kubewarden dashboard view should exist', () => {
|
|
const kubewardenPo = new KubewardenExtensionPo();
|
|
|
|
kubewardenPo.goTo();
|
|
kubewardenPo.waitForPage();
|
|
|
|
cy.get('h1').contains('Kubewarden').should('exist');
|
|
cy.get('button').contains('Install Kubewarden').should('exist');
|
|
});
|
|
|
|
it('Should uninstall Kubewarden', () => {
|
|
const extensionsPo = new ExtensionsPagePo();
|
|
|
|
extensionsPo.goTo();
|
|
extensionsPo.waitForPage();
|
|
|
|
extensionsPo.extensionTabInstalledClick();
|
|
|
|
// click on uninstall button on card
|
|
extensionsPo.extensionCardUninstallClick(extensionName);
|
|
extensionsPo.extensionUninstallModal().should('be.visible');
|
|
extensionsPo.uninstallModaluninstallClick();
|
|
|
|
// let's check the extension reload banner and reload the page
|
|
extensionsPo.extensionReloadBanner().should('be.visible');
|
|
extensionsPo.extensionReloadClick();
|
|
|
|
// make sure extension card is in the available tab
|
|
extensionsPo.extensionTabAvailableClick();
|
|
extensionsPo.extensionCardClick(extensionName);
|
|
extensionsPo.extensionDetailsTitle().should('contain', extensionName);
|
|
});
|
|
|
|
after(() => {
|
|
if ( removeExtensions ) {
|
|
cy.deleteRancherResource('v1', 'catalog.cattle.io.clusterrepos', gitRepoName);
|
|
}
|
|
});
|
|
});
|