Skip to content

Commit d123b19

Browse files
committed
remove extra element in testing
1 parent b17a951 commit d123b19

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

src/idom/testing/display.py

+15-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@
44
from types import TracebackType
55
from typing import Any
66

7-
from playwright.async_api import Browser, BrowserContext, Page, async_playwright
7+
from playwright.async_api import (
8+
Browser,
9+
BrowserContext,
10+
ElementHandle,
11+
Page,
12+
async_playwright,
13+
)
814

915
from idom import html
1016
from idom.config import IDOM_TESTING_DEFAULT_TIMEOUT
@@ -30,22 +36,24 @@ def __init__(
3036
self.page = driver
3137
else:
3238
self._browser = driver
33-
self._next_view_id = 0
3439

3540
async def show(
3641
self,
3742
component: RootComponentConstructor,
3843
) -> None:
39-
self._next_view_id += 1
40-
view_id = f"display-{self._next_view_id}"
41-
self.backend.mount(lambda: html.div({"id": view_id}, component()))
42-
44+
self.backend.mount(component)
4345
await self.goto("/")
44-
await self.page.wait_for_selector(f"#{view_id}", state="attached")
46+
await self.root_element() # check that root element is attached
4547

4648
async def goto(self, path: str, query: Any | None = None) -> None:
4749
await self.page.goto(self.backend.url(path, query))
4850

51+
async def root_element(self) -> ElementHandle:
52+
element = await self.page.wait_for_selector(f"#app", state="attached")
53+
if element is None:
54+
raise RuntimeError("Root element not attached")
55+
return element
56+
4957
async def __aenter__(self) -> DisplayFixture:
5058
es = self._exit_stack = AsyncExitStack()
5159

0 commit comments

Comments
 (0)