4
4
5
5
from playwright .sync_api import expect
6
6
7
- from umap .models import DataLayer
7
+ from umap .models import DataLayer , Map
8
8
9
9
from ..base import DataLayerFactory
10
10
@@ -116,7 +116,7 @@ def test_cannot_add_property_with_a_dot(live_server, openmap, datalayer, page):
116
116
expect (page .locator ("table th button[data-property=name]" )).to_have_count (1 )
117
117
118
118
119
- def test_rename_property (live_server , openmap , page ):
119
+ def test_rename_field (live_server , openmap , page ):
120
120
DataLayerFactory (map = openmap , data = DATALAYER_DATA )
121
121
page .goto (f"{ live_server .url } { openmap .get_absolute_url ()} ?edit#6/48.093/1.890" )
122
122
page .get_by_role ("button" , name = "Manage layers" ).click ()
@@ -142,7 +142,7 @@ def test_rename_property(live_server, openmap, page):
142
142
expect (page .locator (".panel.right .umap-field-mytype" )).to_be_visible ()
143
143
144
144
145
- def test_delete_property (live_server , openmap , page ):
145
+ def test_delete_field (live_server , openmap , page ):
146
146
DataLayerFactory (map = openmap , data = DATALAYER_DATA )
147
147
page .goto (f"{ live_server .url } { openmap .get_absolute_url ()} ?edit#6/48.093/1.890" )
148
148
page .get_by_role ("button" , name = "Manage layers" ).click ()
@@ -203,6 +203,7 @@ def test_filter_and_delete_rows(live_server, openmap, page):
203
203
expect (page .locator (".leaflet-marker-icon" )).to_have_count (4 )
204
204
table .locator ("thead button[data-property=mytype]" ).click ()
205
205
page .get_by_role ("button" , name = "Add filter for this field" ).click ()
206
+ page .get_by_role ("button" , name = "OK" ).click ()
206
207
expect (panel ).to_be_visible ()
207
208
panel .get_by_label ("even" ).check ()
208
209
table .locator ("thead" ).get_by_role ("checkbox" ).check ()
@@ -214,3 +215,26 @@ def test_filter_and_delete_rows(live_server, openmap, page):
214
215
expect (table .get_by_text ("Point 3" )).to_be_visible ()
215
216
expect (table .get_by_text ("Point 2" )).to_be_hidden ()
216
217
expect (table .get_by_text ("Point 4" )).to_be_hidden ()
218
+
219
+
220
+ def test_add_filter_on_map_field (live_server , openmap , page ):
221
+ openmap .settings ["properties" ]["fields" ] = [{"key" : "mynumber" , "type" : "Number" }]
222
+ openmap .save ()
223
+ table = page .locator (".panel.full table" )
224
+ DataLayerFactory (map = openmap , data = DATALAYER_DATA )
225
+ page .goto (f"{ live_server .url } { openmap .get_absolute_url ()} ?edit#6/48.093/1.890" )
226
+ page .get_by_role ("button" , name = "Manage layers" ).click ()
227
+ page .locator (".panel" ).get_by_title ("Edit properties in a table" ).click ()
228
+ table .locator ("thead button[data-property=mynumber]" ).click ()
229
+ page .get_by_role ("button" , name = "Add filter for this field" ).click ()
230
+ expect (page .locator ("dialog" ).get_by_label ("minmax" , exact = True )).to_be_checked ()
231
+ page .locator ("dialog" ).get_by_label ("human readable name" ).fill ("My Fun Filter" )
232
+ page .wait_for_timeout (300 ) # Throttling…
233
+ page .get_by_role ("button" , name = "OK" ).click ()
234
+ expect (page .locator (".panel.left.on" ).get_by_text ("My Fun Filter" )).to_be_visible ()
235
+ with page .expect_response (re .compile ("./update/settings/.*" )):
236
+ page .get_by_role ("button" , name = "Save" ).click ()
237
+ saved = Map .objects .first ()
238
+ assert saved .settings ["properties" ]["filters" ] == {
239
+ "mynumber" : {"widget" : "minmax" , "label" : "My Fun Filter" }
240
+ }
0 commit comments