tests: add check with prefilling update on block rows (#75162)
This commit is contained in:
parent
5c2928af03
commit
cd12d4ea1b
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue