Skip to content

Commit b5ef624

Browse files
authored
test: add tracing related tests (#1020)
1 parent 82e3931 commit b5ef624

File tree

2 files changed

+59
-2
lines changed

2 files changed

+59
-2
lines changed

tests/async/test_tracing.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,42 @@
1414

1515
from pathlib import Path
1616

17+
from playwright.async_api import Browser, BrowserContext
18+
from tests.server import Server
1719

18-
async def test_browser_context_output_trace(browser, server, tmp_path):
20+
21+
async def test_browser_context_output_trace(
22+
browser: Browser, server: Server, tmp_path: Path
23+
):
1924
context = await browser.new_context()
2025
await context.tracing.start(screenshots=True, snapshots=True)
2126
page = await context.new_page()
2227
await page.goto(server.PREFIX + "/grid.html")
2328
await context.tracing.stop(path=tmp_path / "trace.zip")
2429
assert Path(tmp_path / "trace.zip").exists()
30+
31+
32+
async def test_browser_context_should_not_throw_when_stopping_without_start_but_not_exporting(
33+
context: BrowserContext, server: Server, tmp_path: Path
34+
):
35+
await context.tracing.stop()
36+
37+
38+
async def test_browser_context_output_trace_chunk(
39+
browser: Browser, server: Server, tmp_path: Path
40+
):
41+
context = await browser.new_context()
42+
await context.tracing.start(screenshots=True, snapshots=True)
43+
page = await context.new_page()
44+
await page.goto(server.PREFIX + "/grid.html")
45+
button = page.locator(".box").first
46+
47+
await context.tracing.start_chunk(title="foo")
48+
await button.click()
49+
await context.tracing.stop_chunk(path=tmp_path / "trace1.zip")
50+
assert Path(tmp_path / "trace1.zip").exists()
51+
52+
await context.tracing.start_chunk(title="foo")
53+
await button.click()
54+
await context.tracing.stop_chunk(path=tmp_path / "trace2.zip")
55+
assert Path(tmp_path / "trace2.zip").exists()

tests/sync/test_tracing.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from pathlib import Path
1616

17-
from playwright.sync_api import Browser
17+
from playwright.sync_api import Browser, BrowserContext
1818
from tests.server import Server
1919

2020

@@ -27,3 +27,29 @@ def test_browser_context_output_trace(
2727
page.goto(server.PREFIX + "/grid.html")
2828
context.tracing.stop(path=tmp_path / "trace.zip")
2929
assert Path(tmp_path / "trace.zip").exists()
30+
31+
32+
def test_browser_context_should_not_throw_when_stopping_without_start_but_not_exporting(
33+
context: BrowserContext,
34+
) -> None:
35+
context.tracing.stop()
36+
37+
38+
def test_browser_context_output_trace_chunk(
39+
browser: Browser, server: Server, tmp_path: Path
40+
) -> None:
41+
context = browser.new_context()
42+
context.tracing.start(screenshots=True, snapshots=True)
43+
page = context.new_page()
44+
page.goto(server.PREFIX + "/grid.html")
45+
button = page.locator(".box").first
46+
47+
context.tracing.start_chunk(title="foo")
48+
button.click()
49+
context.tracing.stop_chunk(path=tmp_path / "trace1.zip")
50+
assert Path(tmp_path / "trace1.zip").exists()
51+
52+
context.tracing.start_chunk(title="foo")
53+
button.click()
54+
context.tracing.stop_chunk(path=tmp_path / "trace2.zip")
55+
assert Path(tmp_path / "trace2.zip").exists()

0 commit comments

Comments
 (0)