universo-platform-2d
40 строк · 1.0 Кб
1import { setTimeout } from 'node:timers/promises';
2
3import type { Page } from '@playwright/test';
4import fs from 'fs-extra';
5
6export async function waitForLogMessage(
7page: Page,
8log: string
9): Promise<boolean> {
10return new Promise(resolve => {
11page.on('console', msg => {
12if (msg.type() === 'log' && msg.text() === log) {
13resolve(true);
14}
15});
16});
17}
18
19export async function removeWithRetry(
20filePath: string,
21maxRetries = 5,
22delay = 500
23) {
24for (let i = 0; i < maxRetries; i++) {
25try {
26await fs.remove(filePath);
27console.log(`File ${filePath} successfully deleted.`);
28return true;
29} catch (err: any) {
30if (err.code === 'EBUSY' || err.code === 'EPERM') {
31console.log(`File ${filePath} is busy or locked, retrying...`);
32await setTimeout(delay);
33} else {
34console.error(`Failed to delete file ${filePath}:`, err);
35}
36}
37}
38// Add a return statement here to ensure that a value is always returned
39return false;
40}
41