]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
633d9733c99b5bad73c778bae3f3facaf5496c10
[ceph.git] /
1 import { CreateClusterWizardHelper } from 'cypress/integration/cluster/create-cluster.po';
2 import { HostsPageHelper } from 'cypress/integration/cluster/hosts.po';
3 import { OSDsPageHelper } from 'cypress/integration/cluster/osds.po';
4 import { ServicesPageHelper } from 'cypress/integration/cluster/services.po';
5
6 describe('when cluster creation is completed', () => {
7   const createCluster = new CreateClusterWizardHelper();
8   const services = new ServicesPageHelper();
9   const hosts = new HostsPageHelper();
10
11   const serviceName = 'rgw.foo';
12   const hostnames = [
13     'ceph-node-00.cephlab.com',
14     'ceph-node-01.cephlab.com',
15     'ceph-node-02.cephlab.com',
16     'ceph-node-03.cephlab.com'
17   ];
18
19   beforeEach(() => {
20     cy.login();
21     Cypress.Cookies.preserveOnce('token');
22   });
23
24   it('should redirect to dashboard landing page after cluster creation', () => {
25     createCluster.navigateTo();
26     createCluster.createCluster();
27
28     cy.get('.nav-link').contains('Review').click();
29     cy.get('button[aria-label="Next"]').click();
30     cy.get('cd-dashboard').should('exist');
31   });
32
33   describe('Hosts page', () => {
34     beforeEach(() => {
35       hosts.navigateTo();
36     });
37
38     it('should have removed "_no_schedule" label', () => {
39       for (const hostname of hostnames) {
40         hosts.checkLabelExists(hostname, ['_no_schedule'], false);
41       }
42     });
43
44     it('should display inventory', () => {
45       hosts.clickTab('cd-host-details', hostnames[1], 'Physical Disks');
46       cy.get('cd-host-details').within(() => {
47         hosts.getTableCount('total').should('be.gte', 0);
48       });
49     });
50
51     it('should display daemons', () => {
52       hosts.clickTab('cd-host-details', hostnames[1], 'Daemons');
53       cy.get('cd-host-details').within(() => {
54         hosts.getTableCount('total').should('be.gte', 0);
55       });
56     });
57
58     it('should check if rgw service is running', () => {
59       hosts.clickTab('cd-host-details', hostnames[3], 'Daemons');
60       cy.get('cd-host-details').within(() => {
61         services.checkServiceStatus('rgw');
62       });
63     });
64   });
65
66   describe('OSDs page', () => {
67     const osds = new OSDsPageHelper();
68
69     beforeEach(() => {
70       osds.navigateTo();
71     });
72
73     it('should check if osds are created', { retries: 1 }, () => {
74       osds.getTableCount('total').should('be.gte', 1);
75     });
76   });
77
78   describe('Services page', () => {
79     beforeEach(() => {
80       services.navigateTo();
81     });
82
83     it('should check if services are created', () => {
84       services.checkExist(serviceName, true);
85     });
86   });
87
88   describe('Host actions', () => {
89     beforeEach(() => {
90       hosts.navigateTo();
91     });
92
93     it('should force maintenance and exit', { retries: 1 }, () => {
94       hosts.maintenance(hostnames[3], true, true);
95     });
96
97     it('should drain, remove and add the host back', () => {
98       hosts.drain(hostnames[1]);
99       hosts.remove(hostnames[1]);
100       hosts.navigateTo('add');
101       hosts.add(hostnames[1]);
102       hosts.checkExist(hostnames[1], true);
103     });
104   });
105 });