mirror of
https://github.com/umap-project/umap.git
synced 2025-04-28 11:32:38 +02:00
Update the tests and remove cancel edits
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
This commit is contained in:
parent
fa3ba46ca8
commit
4fd066387d
7 changed files with 12 additions and 39 deletions
|
@ -553,9 +553,7 @@ export default class Umap extends ServerStored {
|
|||
used = false
|
||||
break
|
||||
}
|
||||
if (SAVEMANAGER.isDirty) {
|
||||
this.askForReset()
|
||||
}
|
||||
this.sync._undoManager.undo()
|
||||
break
|
||||
case 'm':
|
||||
this._leafletMap.editTools.startMarker()
|
||||
|
@ -1161,21 +1159,6 @@ export default class Umap extends ServerStored {
|
|||
})
|
||||
}
|
||||
|
||||
reset() {
|
||||
if (this._leafletMap.editTools) this._leafletMap.editTools.stopDrawing()
|
||||
this.resetProperties()
|
||||
this.datalayersIndex = [].concat(this._datalayersIndex_bk)
|
||||
// Iter over all datalayers, including deleted if any.
|
||||
for (const datalayer of Object.values(this.datalayers)) {
|
||||
if (datalayer.isDeleted) datalayer.connectToMap()
|
||||
if (datalayer.isDirty) datalayer.reset()
|
||||
}
|
||||
this.ensurePanesOrder()
|
||||
this._leafletMap.initTileLayers()
|
||||
this.onDataLayersChanged()
|
||||
this.isDirty = !this.id
|
||||
}
|
||||
|
||||
async save() {
|
||||
this.rules.commit()
|
||||
const geojson = {
|
||||
|
@ -1302,16 +1285,6 @@ export default class Umap extends ServerStored {
|
|||
this._leafletMap.fire(name)
|
||||
}
|
||||
|
||||
askForReset(e) {
|
||||
if (this.getProperty('syncEnabled')) return
|
||||
this.dialog
|
||||
.confirm(translate('Are you sure you want to cancel your changes?'))
|
||||
.then(() => {
|
||||
this.reset()
|
||||
this.disableEdit()
|
||||
})
|
||||
}
|
||||
|
||||
async initSyncEngine() {
|
||||
// this.properties.websocketEnabled is set by the server admin
|
||||
if (this.properties.websocketEnabled === false) return
|
||||
|
|
|
@ -629,6 +629,7 @@ U.Editable = L.Editable.extend({
|
|||
const line = new U.LineString(this._umap, datalayer, {
|
||||
geometry: { type: 'LineString', coordinates: [] },
|
||||
})
|
||||
line._just_married = true
|
||||
return line.ui
|
||||
},
|
||||
|
||||
|
@ -637,6 +638,7 @@ U.Editable = L.Editable.extend({
|
|||
const poly = new U.Polygon(this._umap, datalayer, {
|
||||
geometry: { type: 'Polygon', coordinates: [] },
|
||||
})
|
||||
poly._just_married = true
|
||||
return poly.ui
|
||||
},
|
||||
|
||||
|
@ -737,6 +739,8 @@ U.Editable = L.Editable.extend({
|
|||
// Leaflet.Editable will delete the drawn shape if invalid
|
||||
// (eg. line has only one drawn point)
|
||||
// So let's check if the layer has no more shape
|
||||
event.layer.feature.pullGeometry(false)
|
||||
console.log('onEscape', event.layer.feature.hasGeom())
|
||||
if (!event.layer.feature.hasGeom()) {
|
||||
event.layer.feature.del()
|
||||
} else {
|
||||
|
|
|
@ -350,8 +350,7 @@ def test_should_redraw_list_on_feature_delete(live_server, openmap, page, bootst
|
|||
buttons.first.click()
|
||||
page.locator("dialog").get_by_role("button", name="OK").click()
|
||||
expect(buttons).to_have_count(2)
|
||||
page.get_by_role("button", name="Cancel edits").click()
|
||||
page.locator("dialog").get_by_role("button", name="OK").click()
|
||||
page.get_by_role("button", name="Undo").click()
|
||||
expect(buttons).to_have_count(3)
|
||||
|
||||
|
||||
|
|
|
@ -64,8 +64,7 @@ def test_cancel_deleting_datalayer_should_restore(
|
|||
page.get_by_role("button", name="OK").click()
|
||||
expect(markers).to_have_count(0)
|
||||
expect(page.get_by_text("test datalayer")).to_be_hidden()
|
||||
page.get_by_role("button", name="Cancel edits").click()
|
||||
page.locator("dialog").get_by_role("button", name="OK").click()
|
||||
page.get_by_role("button", name="Undo").click()
|
||||
expect(markers).to_have_count(1)
|
||||
expect(page.locator(".umap-browser").get_by_text("test datalayer")).to_be_visible()
|
||||
|
||||
|
|
|
@ -117,8 +117,7 @@ def test_should_reset_style_on_cancel(live_server, openmap, page, bootstrap):
|
|||
expect(page.locator(".leaflet-overlay-pane path[fill='GoldenRod']")).to_have_count(
|
||||
1
|
||||
)
|
||||
page.get_by_role("button", name="Cancel edits").click()
|
||||
page.locator("dialog").get_by_role("button", name="OK").click()
|
||||
page.get_by_role("button", name="Undo").click()
|
||||
expect(page.locator(".leaflet-overlay-pane path[fill='DarkBlue']")).to_have_count(1)
|
||||
|
||||
|
||||
|
|
|
@ -294,7 +294,7 @@ def test_should_display_alert_on_conflict(context, live_server, datalayer, openm
|
|||
page_two.locator('input[name="name"]').fill("name from page two")
|
||||
|
||||
# Map should be in dirty status
|
||||
expect(page_two.get_by_text("Cancel edits")).to_be_visible()
|
||||
expect(page_two.get_by_text("Undo")).to_be_visible()
|
||||
with page_two.expect_response(re.compile(r".*/datalayer/update/.*")):
|
||||
page_two.get_by_role("button", name="Save").click()
|
||||
|
||||
|
@ -306,7 +306,7 @@ def test_should_display_alert_on_conflict(context, live_server, datalayer, openm
|
|||
# We should have an alert with some actions
|
||||
expect(page_two.get_by_text("Whoops! Other contributor(s) changed")).to_be_visible()
|
||||
# Map should still be in dirty status
|
||||
expect(page_two.get_by_text("Cancel edits")).to_be_visible()
|
||||
expect(page_two.get_by_text("Undo")).to_be_visible()
|
||||
|
||||
# Override data from page two
|
||||
with page_two.expect_response(re.compile(r".*/datalayer/update/.*")):
|
||||
|
@ -317,4 +317,4 @@ def test_should_display_alert_on_conflict(context, live_server, datalayer, openm
|
|||
data = json.loads(Path(saved.geojson.path).read_text())
|
||||
assert data["features"][0]["properties"]["name"] == "name from page two"
|
||||
# Map should not be in dirty status anymore
|
||||
expect(page_two.get_by_text("Cancel edits")).to_be_hidden()
|
||||
expect(page_two.get_by_text("Undo")).to_be_hidden()
|
||||
|
|
|
@ -16,8 +16,7 @@ def test_reseting_map_would_remove_from_save_queue(
|
|||
page.on("request", register_request)
|
||||
page.locator('input[name="name"]').click()
|
||||
page.locator('input[name="name"]').fill("new name")
|
||||
page.get_by_role("button", name="Cancel edits").click()
|
||||
page.get_by_role("button", name="OK").click()
|
||||
page.get_by_role("button", name="Undo").click()
|
||||
page.wait_for_timeout(500)
|
||||
page.get_by_role("button", name="Edit").click()
|
||||
page.get_by_role("button", name="Manage layers").click()
|
||||
|
|
Loading…
Reference in a new issue