test: update snackbar with variant and data-test attributes

This commit is contained in:
QAComet
2023-10-26 15:43:42 -06:00
committed by Ali BARIN
parent bf7ab475ee
commit 1a55cc8604
18 changed files with 95 additions and 62 deletions

View File

@@ -14,11 +14,12 @@ export class BasePage {
*/
constructor(page) {
this.page = page;
this.snackbar = this.page.locator('.notistack-MuiContent');
this.snackbar = page.locator('*[data-test^="snackbar"]');
}
/**
* Finds the latest snackbar message and extracts relevant data
* @param {string | undefined} testId
* @returns {(
* null | {
* variant: SnackbarVariant,
@@ -27,25 +28,13 @@ export class BasePage {
* }
* )}
*/
async getSnackbarData () {
if (await this.snackbar.count() === 0) {
return null;
}
const snack = this.snackbar.first(); // uses flex: column-reverse
const classList = await snack.evaluate(node => Array.from(node.classList));
/** @type SnackbarVariant */
let variant = 'default';
if (classList.includes('notistack-MuiContent-success')) {
variant = 'success'
} else if (classList.includes('notistack-MuiContent-warning')) {
variant = 'warning'
} else if (classList.includes('notistack-MuiContent-error')) {
variant = 'error'
} else if (classList.includes('notistack-MuiContent-info')) {
variant = 'info'
async getSnackbarData (testId) {
if (!testId) {
testId = 'snackbar';
}
const snack = this.page.getByTestId(testId);
return {
variant,
variant: await snack.getAttribute('data-snackbar-variant'),
text: await snack.evaluate(node => node.innerText),
dataset: await snack.evaluate(node => {
function getChildren (n) {