Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mgr/dashboard: Hosts Page Service Links Tests
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
Showing
2 changed files
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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' | ||
); | ||
}); | ||
} | ||
} |