universo-platform-2d

Форк
0
40 строк · 1.0 Кб
1
import { setTimeout } from 'node:timers/promises';
2

3
import type { Page } from '@playwright/test';
4
import fs from 'fs-extra';
5

6
export async function waitForLogMessage(
7
  page: Page,
8
  log: string
9
): Promise<boolean> {
10
  return new Promise(resolve => {
11
    page.on('console', msg => {
12
      if (msg.type() === 'log' && msg.text() === log) {
13
        resolve(true);
14
      }
15
    });
16
  });
17
}
18

19
export async function removeWithRetry(
20
  filePath: string,
21
  maxRetries = 5,
22
  delay = 500
23
) {
24
  for (let i = 0; i < maxRetries; i++) {
25
    try {
26
      await fs.remove(filePath);
27
      console.log(`File ${filePath} successfully deleted.`);
28
      return true;
29
    } catch (err: any) {
30
      if (err.code === 'EBUSY' || err.code === 'EPERM') {
31
        console.log(`File ${filePath} is busy or locked, retrying...`);
32
        await setTimeout(delay);
33
      } else {
34
        console.error(`Failed to delete file ${filePath}:`, err);
35
      }
36
    }
37
  }
38
  // Add a return statement here to ensure that a value is always returned
39
  return false;
40
}
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.