1 import { PageHelper } from '../page-helper.po';
4 index: { url: '#/services', id: 'cd-services' },
5 create: { url: '#/services/create', id: 'cd-service-form' }
8 export class ServicesPageHelper extends PageHelper {
20 this.getTableCount('total').should('not.be.eq', 0);
23 private selectServiceType(serviceType: string) {
24 return this.selectOption('service_type', serviceType);
27 @PageHelper.restrictTo(pages.create.url)
28 addService(serviceType: string, exist?: boolean) {
29 cy.get(`${this.pages.create.id}`).within(() => {
30 this.selectServiceType(serviceType);
31 if (serviceType === 'rgw') {
32 cy.get('#service_id').type('rgw.foo');
33 cy.get('#count').type('1');
34 } else if (serviceType === 'ingress') {
35 this.selectOption('backend_service', 'rgw.rgw.foo');
36 cy.get('#service_id').should('have.value', 'rgw.rgw.foo');
37 cy.get('#virtual_ip').type('192.168.20.1/24');
38 cy.get('#frontend_port').type('8081');
39 cy.get('#monitor_port').type('8082');
42 cy.get('cd-submit-button').click();
45 cy.get('#service_id').should('have.class', 'ng-invalid');
47 // back to service list
48 cy.get(`${this.pages.index.id}`);
52 @PageHelper.restrictTo(pages.index.url)
53 checkExist(serviceName: string, exist: boolean) {
54 this.getTableCell(this.columnIndex.service_name, serviceName).should(($elements) => {
55 const services = $elements.map((_, el) => el.textContent).get();
57 expect(services).to.include(serviceName);
59 expect(services).to.not.include(serviceName);
64 @PageHelper.restrictTo(pages.index.url)
65 deleteService(serviceName: string, wait: number) {
66 const getRow = this.getTableCell.bind(this, this.columnIndex.service_name);
67 getRow(serviceName).click();
69 // Clicks on table Delete button
70 this.clickActionButton('delete');
73 cy.get('cd-modal .custom-control-label').click();
74 cy.contains('cd-modal button', 'Delete').click();
76 // Wait for modal to close
77 cy.get('cd-modal').should('not.exist');
79 // wait for delete operation to complete: tearing down the service daemons
82 this.checkExist(serviceName, false);