]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/navigation.po.ts
486d30dd646839292e50a9775a269c686be2cca8
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / cypress / integration / ui / navigation.po.ts
1 import { PageHelper } from '../page-helper.po';
2
3 export class NavigationPageHelper extends PageHelper {
4 pages = {
5 index: { url: '#/dashboard', id: 'cd-dashboard' }
6 };
7
8 navigations = [
9 { menu: 'NFS', component: 'cd-error' },
10 {
11 menu: 'Object Gateway',
12 submenus: [
13 { menu: 'Daemons', component: 'cd-rgw-daemon-list' },
14 { menu: 'Users', component: 'cd-rgw-user-list' },
15 { menu: 'Buckets', component: 'cd-rgw-bucket-list' }
16 ]
17 },
18 { menu: 'Dashboard', component: 'cd-dashboard' },
19 {
20 menu: 'Cluster',
21 submenus: [
22 { menu: 'Hosts', component: 'cd-hosts' },
23 { menu: 'Inventory', component: 'cd-error' },
24 { menu: 'Monitors', component: 'cd-monitor' },
25 { menu: 'Services', component: 'cd-error' },
26 { menu: 'OSDs', component: 'cd-osd-list' },
27 { menu: 'Configuration', component: 'cd-configuration' },
28 { menu: 'CRUSH map', component: 'cd-crushmap' },
29 { menu: 'Manager Modules', component: 'cd-mgr-module-list' },
30 { menu: 'Logs', component: 'cd-logs' },
31 { menu: 'Monitoring', component: 'cd-prometheus-tabs' }
32 ]
33 },
34 { menu: 'Pools', component: 'cd-pool-list' },
35 {
36 menu: 'Block',
37 submenus: [
38 { menu: 'Images', component: 'cd-rbd-list' },
39 { menu: 'Mirroring', component: 'cd-mirroring' },
40 { menu: 'iSCSI', component: 'cd-iscsi' }
41 ]
42 },
43 { menu: 'Filesystem', component: 'cd-cephfs-list' }
44 ];
45
46 getVerticalMenu() {
47 return cy.get('ul.cd-navbar-primary');
48 }
49
50 getMenuToggler() {
51 return cy.get('cd-navigation > div.cd-navbar-top button.btn.btn-link');
52 }
53
54 checkNavigations(navs: any) {
55 // The nfs-ganesha and RGW status requests are mocked to ensure that this method runs in time
56 cy.server();
57 cy.route('/api/nfs-ganesha/status', 'fixture:nfs-ganesha-status');
58 cy.route('/api/rgw/status', 'fixture:rgw-status');
59
60 navs.forEach((nav: any) => {
61 cy.contains('.simplebar-content li.nav-item a', nav.menu).click();
62 if (nav.submenus) {
63 this.checkNavigations(nav.submenus);
64 } else {
65 cy.get(nav.component).should('exist');
66 }
67 });
68 }
69 }