difuse-playwright/utils/utils.js

71 lines
1.7 KiB
JavaScript
Raw Normal View History

2024-02-07 00:02:43 +00:00
import IPCIDR from 'ip-cidr';
import IPAddress from 'ip-address';
export function isValidMacAddress (mac) {
try {
const regex = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;
return regex.test(mac);
} catch (error) {
return false;
}
}
export function isValidCidr (cidr, type = 0) {
let [isV4, isV6] = [false, false];
let tempCidr = null;
try {
if (type === 4) {
tempCidr = new IPCIDR(cidr);
if (tempCidr.address.v4) {
isV4 = true;
}
}
if (type === 6) {
tempCidr = new IPAddress.Address6(cidr);
if (!tempCidr.address.v4) {
isV6 = true;
}
}
if (type === 0) {
tempCidr = new IPCIDR(cidr);
if (tempCidr.address.v4) {
isV4 = true;
} else {
isV6 = true;
}
}
return isV4 || isV6;
} catch (error) {
return false;
}
}
2024-02-08 19:06:05 +00:00
export async function clickSelect2Dropdown(page, selectSelector) {
const select2ContainerSelector = `${selectSelector} + .select2-container`;
const select2ContainerExists = await page.$(select2ContainerSelector) !== null;
if (!select2ContainerExists) {
throw new Error('Select2 container not found');
}
const select2Selection = `${select2ContainerSelector} .select2-selection`;
await page.click(select2Selection);
await page.waitForSelector('.select2-dropdown .select2-results__option');
}
export async function hasToastText(page, text) {
try {
return (await (await page.waitForSelector('.swal2-popup', {state: 'visible'})).textContent()).includes(text);
} catch (error) {
console.log(error);
return false;
}
}
export async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}