Skip to content

Commit 0cd11d9

Browse files
committed
port to_have_js_property tests
1 parent f1590f3 commit 0cd11d9

File tree

2 files changed

+153
-1
lines changed

2 files changed

+153
-1
lines changed

tests/async/test_assertions.py

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,81 @@ async def test_assertions_locator_to_have_js_property(
170170
)
171171

172172

173+
async def test_to_have_js_property_pass_string(page: Page) -> None:
174+
await page.set_content("<div></div>")
175+
await page.eval_on_selector("div", "e => e.foo = 'string'")
176+
locator = page.locator("div")
177+
await expect(locator).to_have_js_property("foo", "string")
178+
179+
180+
async def test_to_have_js_property_fail_string(page: Page) -> None:
181+
await page.set_content("<div></div>")
182+
await page.eval_on_selector("div", "e => e.foo = 'string'")
183+
locator = page.locator("div")
184+
with pytest.raises(AssertionError):
185+
await expect(locator).to_have_js_property("foo", "error", timeout=500)
186+
187+
188+
async def test_to_have_js_property_pass_number(page: Page) -> None:
189+
await page.set_content("<div></div>")
190+
await page.eval_on_selector("div", "e => e.foo = 2021")
191+
locator = page.locator("div")
192+
await expect(locator).to_have_js_property("foo", 2021)
193+
194+
195+
async def test_to_have_js_property_fail_number(page: Page) -> None:
196+
await page.set_content("<div></div>")
197+
await page.eval_on_selector("div", "e => e.foo = 2021")
198+
locator = page.locator("div")
199+
with pytest.raises(AssertionError):
200+
await expect(locator).to_have_js_property("foo", 1, timeout=500)
201+
202+
203+
async def test_to_have_js_property_pass_boolean(page: Page) -> None:
204+
await page.set_content("<div></div>")
205+
await page.eval_on_selector("div", "e => e.foo = true")
206+
locator = page.locator("div")
207+
await expect(locator).to_have_js_property("foo", True)
208+
209+
210+
async def test_to_have_js_property_fail_boolean(page: Page) -> None:
211+
await page.set_content("<div></div>")
212+
await page.eval_on_selector("div", "e => e.foo = false")
213+
locator = page.locator("div")
214+
with pytest.raises(AssertionError):
215+
await expect(locator).to_have_js_property("foo", True, timeout=500)
216+
217+
218+
async def test_to_have_js_property_pass_boolean_2(page: Page) -> None:
219+
await page.set_content("<div></div>")
220+
await page.eval_on_selector("div", "e => e.foo = false")
221+
locator = page.locator("div")
222+
await expect(locator).to_have_js_property("foo", False)
223+
224+
225+
async def test_to_have_js_property_fail_boolean_2(page: Page) -> None:
226+
await page.set_content("<div></div>")
227+
await page.eval_on_selector("div", "e => e.foo = false")
228+
locator = page.locator("div")
229+
with pytest.raises(AssertionError):
230+
await expect(locator).to_have_js_property("foo", True, timeout=500)
231+
232+
233+
async def test_to_have_js_property_pass_undefined(page: Page) -> None:
234+
await page.set_content("<div></div>")
235+
locator = page.locator("div")
236+
await expect(locator).to_have_js_property(
237+
"foo", None
238+
) # Python does not have an undefined
239+
240+
241+
async def test_to_have_js_property_pass_null(page: Page) -> None:
242+
await page.set_content("<div></div>")
243+
await page.eval_on_selector("div", "e => e.foo = null")
244+
locator = page.locator("div")
245+
await expect(locator).to_have_js_property("foo", None)
246+
247+
173248
async def test_assertions_locator_to_have_text(page: Page, server: Server) -> None:
174249
await page.goto(server.EMPTY_PAGE)
175250
await page.set_content("<div id=foobar>kek</div>")

tests/sync/test_assertions.py

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,84 @@ def test_assertions_locator_to_have_js_property(page: Page, server: Server) -> N
158158
)
159159

160160

161-
def test_assertions_locator_to_have_text(page: Page, server: Server) -> None:
161+
def test_to_have_js_property_pass_string(page: Page) -> None:
162+
page.set_content("<div></div>")
163+
page.eval_on_selector("div", "e => e.foo = 'string'")
164+
locator = page.locator("div")
165+
expect(locator).to_have_js_property("foo", "string")
166+
167+
168+
def test_to_have_js_property_fail_string(page: Page) -> None:
169+
page.set_content("<div></div>")
170+
page.eval_on_selector("div", "e => e.foo = 'string'")
171+
locator = page.locator("div")
172+
with pytest.raises(AssertionError):
173+
expect(locator).to_have_js_property("foo", "error", timeout=500)
174+
175+
176+
def test_to_have_js_property_pass_number(page: Page) -> None:
177+
page.set_content("<div></div>")
178+
page.eval_on_selector("div", "e => e.foo = 2021")
179+
locator = page.locator("div")
180+
expect(locator).to_have_js_property("foo", 2021)
181+
182+
183+
def test_to_have_js_property_fail_number(page: Page) -> None:
184+
page.set_content("<div></div>")
185+
page.eval_on_selector("div", "e => e.foo = 2021")
186+
locator = page.locator("div")
187+
with pytest.raises(AssertionError):
188+
expect(locator).to_have_js_property("foo", 1, timeout=500)
189+
190+
191+
def test_to_have_js_property_pass_boolean(page: Page) -> None:
192+
page.set_content("<div></div>")
193+
page.eval_on_selector("div", "e => e.foo = true")
194+
locator = page.locator("div")
195+
expect(locator).to_have_js_property("foo", True)
196+
197+
198+
def test_to_have_js_property_fail_boolean(page: Page) -> None:
199+
page.set_content("<div></div>")
200+
page.eval_on_selector("div", "e => e.foo = false")
201+
locator = page.locator("div")
202+
with pytest.raises(AssertionError):
203+
expect(locator).to_have_js_property("foo", True, timeout=500)
204+
205+
206+
def test_to_have_js_property_pass_boolean_2(page: Page) -> None:
207+
page.set_content("<div></div>")
208+
page.eval_on_selector("div", "e => e.foo = false")
209+
locator = page.locator("div")
210+
expect(locator).to_have_js_property("foo", False)
211+
212+
213+
def test_to_have_js_property_fail_boolean_2(page: Page) -> None:
214+
page.set_content("<div></div>")
215+
page.eval_on_selector("div", "e => e.foo = false")
216+
locator = page.locator("div")
217+
with pytest.raises(AssertionError):
218+
expect(locator).to_have_js_property("foo", True, timeout=500)
219+
220+
221+
def test_to_have_js_property_pass_undefined(page: Page) -> None:
222+
page.set_content("<div></div>")
223+
locator = page.locator("div")
224+
expect(locator).to_have_js_property(
225+
"foo", None
226+
) # Python does not have an undefined
227+
228+
229+
def test_to_have_js_property_pass_null(page: Page) -> None:
230+
page.set_content("<div></div>")
231+
page.eval_on_selector("div", "e => e.foo = null")
232+
locator = page.locator("div")
233+
expect(locator).to_have_js_property("foo", None)
234+
235+
236+
def test_to_have_js_property_assertions_locator_to_have_text(
237+
page: Page, server: Server
238+
) -> None:
162239
page.goto(server.EMPTY_PAGE)
163240
page.set_content("<div id=foobar>kek</div>")
164241
expect(page.locator("div#foobar")).to_have_text("kek")

0 commit comments

Comments
 (0)