Merge pull request #33992 from rhcs-dashboard/44626-fix-notifications-e2e-tests

mgr/dashboard: fix notifications E2E tests

Reviewed-by: Tiago Melo <tmelo@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
This commit is contained in:
Laura Paduano 2020-03-27 12:42:42 +01:00 committed by GitHub
commit 7dc02fd0ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 8 deletions

View File

@ -288,8 +288,8 @@ export abstract class PageHelper {
return browser.wait(EC.not(EC.textToBePresentInElement(elem, text)), TIMEOUT, message);
}
async waitFn(func: Function, message?: string) {
return browser.wait(func, TIMEOUT, message);
async waitFn(func: Function, message?: string, timeout: number = TIMEOUT) {
return browser.wait(func, timeout, message);
}
getFirstCell(): ElementFinder {

View File

@ -24,14 +24,27 @@ describe('Notification page', () => {
const poolName = 'e2e_notification_pool';
await pools.navigateTo('create');
await pools.create(poolName, 16);
await pools.edit_pool_pg(poolName, 8, false);
await pools.create(poolName, 8);
await pools.edit_pool_pg(poolName, 4, false);
await notification.waitStaleness(notification.getToast());
// Check that running task is shown.
await notification.open();
await notification.waitVisibility(notification.getTasks().first());
await expect((await notification.getTasks()).length).toBeGreaterThan(0);
await notification.waitFn(async () => {
const task = await notification.getTasks().first();
const text = await task.getText();
return text.includes(poolName);
}, 'Timed out verifying task.');
// Delete pool after task is complete (otherwise we get an error).
await notification.waitFn(
async () => {
const tasks = await notification.getTasks();
return tasks.length === 0 ? true : !(await tasks[0].getText()).includes(poolName);
},
'Timed out waiting for task to complete.',
40000
);
await pools.delete(poolName);
});
@ -44,8 +57,17 @@ describe('Notification page', () => {
await notification.waitStaleness(notification.getToast());
await expect((await notification.getNotifications()).length).toBeGreaterThan(0);
await notification.waitVisibility(notification.getClearNotficationsBtn());
// It can happen that although notifications are cleared, by the time we check the
// notifications amount, another notification can appear, so we check it more than once (if needed).
await notification.waitClickableAndClick(notification.getClearNotficationsBtn());
await notification.waitStaleness(notification.getNotifications().first());
await expect((await notification.getNotifications()).length).toBe(0);
await notification.waitFn(async () => {
const notifications = await notification.getNotifications();
if (notifications.length > 0) {
await notification.waitClickableAndClick(notification.getClearNotficationsBtn());
return false;
}
return true;
}, 'Timed out checking that notifications are cleared.');
});
});