49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
/* eslint-disable import/no-unresolved */
|
|
/* eslint-disable import/no-default-export */
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
import { adminUsername, adminPassword } from '../config.js';
|
|
/* global Promise */
|
|
|
|
// WordPress login authorization
|
|
export function authenticate(page) {
|
|
// Enter login credentials and login
|
|
page.waitForNavigation({ waitUntil: 'networkidle' });
|
|
page.waitForLoadState('networkidle');
|
|
page.locator('input[name="log"]').type(`${adminUsername}`);
|
|
page.locator('input[name="pwd"]').type(`${adminPassword}`);
|
|
// Wait for asynchronous operations to complete
|
|
return Promise.all([
|
|
page.waitForNavigation(),
|
|
page.locator('input[name="wp-submit"]').click(),
|
|
]);
|
|
}
|
|
|
|
// Select a segment or a list from a select2 search field
|
|
export function selectInSelect2(page, listName) {
|
|
// Click and write a list name from a dropdown
|
|
page.locator('.select2-selection').type(listName);
|
|
page.keyboard.press('Enter');
|
|
}
|
|
|
|
// Select a segment or a list from a react search field
|
|
export function selectInReact(page, reactSelector, reactValue) {
|
|
// Click to write a list name from a dropdown
|
|
page.locator(reactSelector).click();
|
|
page.locator(reactSelector).type(reactValue);
|
|
page.keyboard.press('Enter');
|
|
}
|
|
|
|
// Wait and click the element with waiting for navigation
|
|
export function waitAndClick(page, elementName) {
|
|
page.waitForSelector(elementName);
|
|
page.locator(elementName).click();
|
|
page.waitForNavigation({ waitUntil: 'networkidle' });
|
|
}
|
|
|
|
// Wait for selector to be visible
|
|
export async function waitForSelectorToBeVisible(page, element) {
|
|
await page.locator(element).waitFor({ state: 'visible' });
|
|
}
|