summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/notification.e2e-spec.ts
blob: 2ee73a70632baf68494f905f65261eb9210c8900 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import { PoolPageHelper } from '../pools/pools.po';
import { NotificationSidebarPageHelper } from './notification.po';

describe('Notification page', () => {
  const notification = new NotificationSidebarPageHelper();
  const pools = new PoolPageHelper();
  const poolName = 'e2e_notification_pool';

  before(() => {
    cy.login();
    Cypress.Cookies.preserveOnce('token');
    pools.navigateTo('create');
    pools.create(poolName, 8);
    pools.edit_pool_pg(poolName, 4, false);
  });

  after(() => {
    cy.login();
    Cypress.Cookies.preserveOnce('token');
    pools.navigateTo();
    pools.delete(poolName);
  });

  beforeEach(() => {
    cy.login();
    Cypress.Cookies.preserveOnce('token');
    pools.navigateTo();
  });

  it('should open notification sidebar', () => {
    notification.getSidebar().should('not.be.visible');
    notification.open();
    notification.getSidebar().should('be.visible');
  });

  it('should display a running task', () => {
    notification.getToast().should('not.exist');

    // Check that running task is shown.
    notification.open();
    notification.getTasks().contains(poolName).should('exist');

    // Delete pool after task is complete (otherwise we get an error).
    notification.getTasks().contains(poolName, { timeout: 300000 }).should('not.exist');
  });

  it('should have notifications', () => {
    notification.open();
    notification.getNotifications().should('have.length.gt', 0);
  });

  it('should clear notifications', () => {
    notification.getToast().should('not.exist');
    notification.open();
    notification.getNotifications().should('have.length.gt', 0);
    notification.getClearNotficationsBtn().should('be.visible');
    notification.clearNotifications();
  });
});