tests: add check with prefilling update on block rows (#75162)

This commit is contained in:
Frédéric Péters 2024-04-14 11:57:18 +02:00
parent 5c2928af03
commit cd12d4ea1b
1 changed files with 41 additions and 0 deletions

View File

@ -1717,3 +1717,44 @@ def test_form_page_user_data_source(pub):
resp = login(get_app(pub), username='foo', password='foo').get('/test/')
assert resp.form['f1'].value == str(user.id)
assert 'invalid value selected' not in resp.text
def test_form_page_template_block_rows_prefilled_with_form_data(pub):
BlockDef.wipe()
create_user(pub)
block = BlockDef()
block.name = 'foobar'
block.fields = [
fields.StringField(
id='123',
required=True,
label='Test',
varname='test',
prefill={'type': 'string', 'value': '{{ form_var_foo }}'},
),
]
block.store()
formdef = create_formdef()
formdef.data_class().wipe()
formdef.fields = [
fields.PageField(id='1', label='page1'),
fields.StringField(id='2', label='text', varname='foo'),
fields.PageField(id='3', label='page2'),
fields.BlockField(id='4', label='test', block_slug='foobar', max_items=3),
]
formdef.store()
resp = get_app(pub).get('/test/')
resp.form['f2'] = 'foo'
resp = resp.form.submit('submit') # -> second page
assert resp.form['f4$element0$f123'].value == 'foo'
resp = resp.form.submit('f4$add_element')
assert resp.form['f4$element1$f123'].value == 'foo'
resp.form['f4$element0$f123'] = 'bar'
resp = resp.form.submit('previous') # -> first page
resp.form['f2'] = 'baz'
resp = resp.form.submit('submit') # -> second page
assert resp.form['f4$element0$f123'].value == 'bar' # not changed
assert resp.form['f4$element1$f123'].value == 'baz' # updated