chore: move table editor tests to PW
This commit is contained in:
parent
ca8f7bf280
commit
e0ff82298a
3 changed files with 27 additions and 105 deletions
|
@ -1,104 +0,0 @@
|
|||
describe('L.TableEditor', () => {
|
||||
let path = '/map/99/datalayer/edit/62/',
|
||||
datalayer
|
||||
|
||||
before(async () => {
|
||||
await fetchMock.mock(
|
||||
/\/datalayer\/62\/\?.*/,
|
||||
JSON.stringify(RESPONSES.datalayer62_GET)
|
||||
)
|
||||
this.options = {
|
||||
umap_id: 99,
|
||||
}
|
||||
map = initMap({ umap_id: 99 })
|
||||
const datalayer_options = defaultDatalayerData()
|
||||
await map.initDataLayers([datalayer_options])
|
||||
datalayer = map.getDataLayerByUmapId(62)
|
||||
enableEdit()
|
||||
})
|
||||
after(() => {
|
||||
fetchMock.restore()
|
||||
clickCancel()
|
||||
resetMap()
|
||||
})
|
||||
|
||||
describe('#open()', () => {
|
||||
var button
|
||||
|
||||
it('should exist table click on edit mode', () => {
|
||||
button = qs(
|
||||
'#browse_data_toggle_' + L.stamp(datalayer) + ' .layer-table-edit'
|
||||
)
|
||||
expect(button).to.be.ok
|
||||
})
|
||||
|
||||
it('should open table button click', () => {
|
||||
happen.click(button)
|
||||
expect(qs('#umap-ui-container div.table')).to.be.ok
|
||||
expect(qsa('#umap-ui-container div.table form').length).to.eql(3) // One per feature.
|
||||
expect(qsa('#umap-ui-container div.table input').length).to.eql(3) // One per feature and per property.
|
||||
})
|
||||
})
|
||||
describe('#properties()', () => {
|
||||
var feature
|
||||
|
||||
before(() => {
|
||||
var firstIndex = datalayer._index[0]
|
||||
feature = datalayer._layers[firstIndex]
|
||||
})
|
||||
|
||||
it('should create new property column', () => {
|
||||
var newPrompt = () => {
|
||||
return 'newprop'
|
||||
}
|
||||
var oldPrompt = window.prompt
|
||||
window.prompt = newPrompt
|
||||
var button = qs('#umap-ui-container .add-property')
|
||||
expect(button).to.be.ok
|
||||
happen.click(button)
|
||||
expect(qsa('#umap-ui-container div.table input').length).to.eql(6) // One per feature and per property.
|
||||
window.prompt = oldPrompt
|
||||
})
|
||||
|
||||
it('should populate feature property on fill', () => {
|
||||
var input = qs(
|
||||
'form#umap-feature-properties_' + L.stamp(feature) + ' input[name=newprop]'
|
||||
)
|
||||
changeInputValue(input, 'the value')
|
||||
expect(feature.properties.newprop).to.eql('the value')
|
||||
})
|
||||
|
||||
it('should update property name on update click', () => {
|
||||
var newPrompt = () => {
|
||||
return 'newname'
|
||||
}
|
||||
var oldPrompt = window.prompt
|
||||
window.prompt = newPrompt
|
||||
var button = qs('#umap-ui-container div.thead div.tcell:last-of-type .umap-edit')
|
||||
expect(button).to.be.ok
|
||||
happen.click(button)
|
||||
expect(qsa('#umap-ui-container div.table input').length).to.eql(6)
|
||||
expect(feature.properties.newprop).to.be.undefined
|
||||
expect(feature.properties.newname).to.eql('the value')
|
||||
window.prompt = oldPrompt
|
||||
})
|
||||
|
||||
it('should update property on delete click', () => {
|
||||
var oldConfirm,
|
||||
newConfirm = () => {
|
||||
return true
|
||||
}
|
||||
oldConfirm = window.confirm
|
||||
window.confirm = newConfirm
|
||||
var button = qs(
|
||||
'#umap-ui-container div.thead div.tcell:last-of-type .umap-delete'
|
||||
)
|
||||
expect(button).to.be.ok
|
||||
happen.click(button)
|
||||
FEATURE = feature
|
||||
expect(qsa('#umap-ui-container div.table input').length).to.eql(3)
|
||||
expect(feature.properties.newname).to.be.undefined
|
||||
window.confirm = oldConfirm
|
||||
})
|
||||
})
|
||||
})
|
|
@ -89,7 +89,6 @@
|
|||
</script>
|
||||
<script src="./_pre.js" defer></script>
|
||||
<script src="./Map.js" defer></script>
|
||||
<script src="./TableEditor.js" defer></script>
|
||||
<script src="./Feature.js" defer></script>
|
||||
<script src="./Marker.js" defer></script>
|
||||
<script src="./Polyline.js" defer></script>
|
||||
|
|
27
umap/tests/integration/test_tableeditor.py
Normal file
27
umap/tests/integration/test_tableeditor.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
import json
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
from playwright.sync_api import expect
|
||||
|
||||
from umap.models import DataLayer
|
||||
|
||||
|
||||
def test_table_editor(live_server, openmap, datalayer, page):
|
||||
page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit")
|
||||
page.get_by_role("link", name="Manage layers").click()
|
||||
page.locator("#umap-ui-container").get_by_title(
|
||||
"Edit properties in a table"
|
||||
).click()
|
||||
page.once("dialog", lambda dialog: dialog.accept(prompt_text="newprop"))
|
||||
page.get_by_text("Add a new property").click()
|
||||
page.locator('input[name="newprop"]').fill("newvalue")
|
||||
page.once("dialog", lambda dialog: dialog.accept())
|
||||
page.hover(".umap-table-editor .tcell")
|
||||
page.get_by_title("Delete this property on all").first.click()
|
||||
with page.expect_response(re.compile(r".*/datalayer/update/.*")):
|
||||
page.get_by_role("button", name="Save").click()
|
||||
saved = DataLayer.objects.last()
|
||||
data = json.loads(Path(saved.geojson.path).read_text())
|
||||
assert data["features"][0]["properties"]["newprop"] == "newvalue"
|
||||
assert "name" not in data["features"][0]["properties"]
|
Loading…
Reference in a new issue