universo-platform-2d

Форк
0
43 строки · 1.3 Кб
1
import { expect, type Page } from '@playwright/test';
2

3
export function locateModeSwitchButton(
4
  page: Page,
5
  mode: 'page' | 'edgeless',
6
  active?: boolean
7
) {
8
  // switch is implemented as RadioGroup button,
9
  // so we can use aria-checked to determine the active state
10
  const checkedSelector = active ? '[aria-checked="true"]' : '';
11

12
  return page.locator(
13
    `[data-testid="switch-${mode}-mode-button"]${checkedSelector}`
14
  );
15
}
16

17
export async function clickEdgelessModeButton(page: Page) {
18
  await locateModeSwitchButton(page, 'edgeless').click({ delay: 50 });
19
  await ensureInEdgelessMode(page);
20
}
21

22
export async function clickPageModeButton(page: Page) {
23
  await locateModeSwitchButton(page, 'page').click({ delay: 50 });
24
  await ensureInPageMode(page);
25
}
26

27
export async function ensureInPageMode(page: Page) {
28
  await expect(locateModeSwitchButton(page, 'page', true)).toBeVisible();
29
}
30

31
export async function ensureInEdgelessMode(page: Page) {
32
  await expect(locateModeSwitchButton(page, 'edgeless', true)).toBeVisible();
33
}
34

35
export async function getPageMode(page: Page): Promise<'page' | 'edgeless'> {
36
  if (await locateModeSwitchButton(page, 'page', true).isVisible()) {
37
    return 'page';
38
  }
39
  if (await locateModeSwitchButton(page, 'edgeless', true).isVisible()) {
40
    return 'edgeless';
41
  }
42
  throw new Error('Unknown mode');
43
}
44

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

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

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

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