@@ -158,7 +158,84 @@ def test_assertions_locator_to_have_js_property(page: Page, server: Server) -> N
158
158
)
159
159
160
160
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 :
162
239
page .goto (server .EMPTY_PAGE )
163
240
page .set_content ("<div id=foobar>kek</div>" )
164
241
expect (page .locator ("div#foobar" )).to_have_text ("kek" )
0 commit comments