Skip to content

Commit

Permalink
mgr/dashboard: Hosts Page Service Links Tests
Browse files Browse the repository at this point in the history
Test links in "Services" column on hosts page properly link to Performance Counters pages

Fixes: https://tracker.ceph.com/issues/41142

Signed-off-by: Adam King <adking@redhat.com>
Signed-off-by: Rafael Quintero <rquinter@redhat.com>
  • Loading branch information
adk3798 committed Aug 9, 2019
1 parent f0746bb commit 968eabf
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts
Expand Up @@ -32,4 +32,14 @@ describe('Hosts page', () => {
expect(hosts.getTabText(1)).toEqual('Overall Performance');
});
});

describe('services link test', () => {
beforeAll(() => {
hosts.navigateTo();
});

it('should check services link(s) work for first host', () => {
hosts.check_services_links();
});
});
});
44 changes: 44 additions & 0 deletions src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.po.ts
@@ -1,5 +1,49 @@
import { by, element } from 'protractor';
import { PageHelper } from '../page-helper.po';

export class HostsPageHelper extends PageHelper {
pages = { index: '/#/hosts' };

// function that checks all services links work for first
// host in table (if a host is present)
check_services_links() {
this.navigateTo();
let links_tested = 0;
this.getTableCount()
.getText()
.then((hostcount) => {
// Only check for services links if there's at least 1 host present
if (hostcount.includes('0 total')) {
return;
}
// grab services column for first host
const services = element.all(by.css('.datatable-body-cell')).get(1);
// check is any services links are present
services.getText().then((txt) => {
// check that text (links) is present in services box
if (txt.length === 0) {
return;
}
const links = services.all(by.css('a.ng-star-inserted'));
links.count().then((num_links) => {
for (let i = 0; i < num_links; i++) {
// click link, check it worked by looking for changed breadcrumb,
// navigate back to hosts page, repeat until all links checked
links.get(i).click();
expect(this.getBreadcrumbText()).toEqual('Performance Counters');
this.navigateTo();
expect(this.getBreadcrumbText()).toEqual('Hosts');
links_tested++;
}
});
});
})
.then(() => {
// check if any links were actually tested
expect(links_tested > 0).toBe(
true,
'No links were tested. Either no hosts were present or the first host had no services'
);
});
}
}

0 comments on commit 968eabf

Please sign in to comment.