]>
Commit | Line | Data |
---|---|---|
e306af50 TL |
1 | import { PageHelper } from '../page-helper.po'; |
2 | ||
3 | const pages = { | |
4 | index: { url: '#/pool', id: 'cd-pool-list' }, | |
5 | create: { url: '#/pool/create', id: 'cd-pool-form' } | |
6 | }; | |
7 | ||
8 | export class PoolPageHelper extends PageHelper { | |
9 | pages = pages; | |
10 | ||
11 | private isPowerOf2(n: number) { | |
12 | // tslint:disable-next-line: no-bitwise | |
13 | return expect((n & (n - 1)) === 0, `Placement groups ${n} are not a power of 2`).to.be.true; | |
14 | } | |
15 | ||
e306af50 TL |
16 | @PageHelper.restrictTo(pages.create.url) |
17 | create(name: string, placement_groups: number, ...apps: string[]) { | |
18 | cy.get('input[name=name]').clear().type(name); | |
19 | ||
20 | this.isPowerOf2(placement_groups); | |
21 | ||
22 | this.selectOption('poolType', 'replicated'); | |
23 | ||
24 | this.expectSelectOption('pgAutoscaleMode', 'on'); | |
25 | this.selectOption('pgAutoscaleMode', 'off'); // To show pgNum field | |
26 | cy.get('input[name=pgNum]').clear().type(`${placement_groups}`); | |
27 | this.setApplications(apps); | |
28 | cy.get('cd-submit-button').click(); | |
29 | } | |
30 | ||
31 | edit_pool_pg(name: string, new_pg: number, wait = true) { | |
32 | this.isPowerOf2(new_pg); | |
33 | this.navigateEdit(name); | |
34 | ||
35 | cy.get('input[name=pgNum]').clear().type(`${new_pg}`); | |
36 | cy.get('cd-submit-button').click(); | |
37 | const str = `${new_pg} active+clean`; | |
38 | this.getTableRow(name); | |
39 | if (wait) { | |
40 | this.getTableRow(name).contains(str); | |
41 | } | |
42 | } | |
43 | ||
f67539c2 TL |
44 | edit_pool_configuration(name: string, bpsLimit: string) { |
45 | this.navigateEdit(name); | |
46 | ||
47 | cy.get('.collapsible').click(); | |
48 | cy.get('cd-rbd-configuration-form') | |
49 | .get('input[name=rbd_qos_bps_limit]') | |
50 | .clear() | |
51 | .type(`${bpsLimit}`); | |
52 | cy.get('cd-submit-button').click(); | |
53 | ||
54 | this.navigateEdit(name); | |
55 | ||
56 | cy.get('.collapsible').click(); | |
57 | cy.get('cd-rbd-configuration-form') | |
58 | .get('input[name=rbd_qos_bps_limit]') | |
59 | .should('have.value', bpsLimit); | |
60 | } | |
61 | ||
e306af50 TL |
62 | private setApplications(apps: string[]) { |
63 | if (!apps || apps.length === 0) { | |
64 | return; | |
65 | } | |
66 | cy.get('.float-left.mr-2.select-menu-edit').click(); | |
f67539c2 | 67 | cy.get('.popover-body').should('be.visible'); |
e306af50 TL |
68 | apps.forEach((app) => cy.get('.select-menu-item-content').contains(app).click()); |
69 | } | |
70 | } |