gradio

Форк
0
/
audio_debugger.spec.ts 
90 строк · 2.7 Кб
1
import { test, expect } from "@gradio/tootils";
2
import { chromium } from "playwright";
3
// we cannot currently test the waveform canvas with playwright (https://github.com/microsoft/playwright/issues/23964)
4
// so this test covers the interactive elements around the waveform canvas
5

6
test("audio waveform", async ({ page }) => {
7
	await expect(page.getByRole("tab", { name: "Audio" })).toHaveAttribute(
8
		"aria-selected",
9
		"true"
10
	);
11
	await page.getByRole("tab", { name: "Interface" }).click();
12
	await page.getByRole("tab", { name: "Interface" }).click();
13
	await page.getByRole("button", { name: "cantina.wav" }).click();
14

15
	await page
16
		.getByTestId("waveform-x")
17
		.getByLabel("Adjust playback speed to 1.5x")
18
		.click();
19
	await page.getByLabel("Adjust playback speed to 2x").click();
20

21
	await page
22
		.getByTestId("waveform-x")
23
		.getByLabel("Skip forward by 0.15 seconds")
24
		.click();
25
	await page
26
		.getByTestId("waveform-x")
27
		.getByLabel("Skip backwards by 0.15 seconds")
28
		.click();
29
	await page.getByLabel("Trim audio to selection").click();
30
	await page.getByRole("button", { name: "Trim" }).click();
31
	await page.getByLabel("Reset audio").click();
32
	await page.getByRole("button", { name: "Submit" }).click();
33
	await page
34
		.getByTestId("waveform-output")
35
		.getByLabel("Adjust playback speed to 1.5x")
36
		.click();
37
	await page
38
		.getByTestId("waveform-output")
39
		.getByLabel("Skip backwards by 0.15 seconds")
40
		.click();
41
	await page
42
		.getByTestId("waveform-output")
43
		.getByLabel("Skip forward by 0.15 seconds")
44
		.click();
45
});
46

47
test("audio streaming tab", async ({ page }) => {
48
	const browser = await chromium.launch({
49
		args: ["--use-fake-ui-for-media-stream"]
50
	});
51

52
	const context = await browser.newContext({
53
		permissions: ["microphone"]
54
	});
55

56
	context.grantPermissions(["microphone"]);
57

58
	await page.getByRole("tab", { name: "Streaming" }).click();
59

60
	await expect(page.getByLabel("Select input device")).toContainText(
61
		"Fake Default Audio InputFake Audio Input 1Fake Audio Input 2"
62
	);
63
});
64

65
test("recording audio", async ({ page }) => {
66
	const browser = await chromium.launch({
67
		args: ["--use-fake-ui-for-media-stream"]
68
	});
69

70
	const context = await browser.newContext({
71
		permissions: ["microphone"]
72
	});
73

74
	await page.getByText("Interface").click();
75
	await page.getByLabel("Record audio").click();
76

77
	context.grantPermissions(["microphone"]);
78

79
	await expect(page.getByRole("combobox")).toContainText(
80
		"Fake Default Audio InputFake Audio Input 1Fake Audio Input 2"
81
	);
82

83
	await page.getByRole("button", { name: "Record", exact: true }).click();
84

85
	await page.waitForTimeout(1000);
86

87
	await expect(page.getByText("0:01", { exact: true })).toBeAttached();
88

89
	await page.getByText("Stop", { exact: true }).nth(0).click();
90
});
91

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

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

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

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