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; } } 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)); } export function isValidDate(date) { try { const dateRegex = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/; return dateRegex.test(date); } catch (error) { return false; } }