Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[DomCrawler] Add something to select non-existing value in ChoiceFormField #60435

Open
@tjveldhuizen

Description

@tjveldhuizen

Description

When using DomCrawler in a test case, one is able to set the value of a Choice form field using the setValue()method, The implementation of this method checks if the value to be set matches one of the <option> elements for the specific <select>. When the <select> is populated via Javascript (using select2 or tom-select for example), those <option> elements are not available during the test.

Since the \Symfony\Component\DomCrawler\Field\ChoiceFormField::disableValidation method is internal, I should not use it in my test. Would it be better to add this method to the API, or to add a flag to the setValue() method which disables the 'is the option available' check?

Example

// Ajax populated field using internal 'disableValidation'
$personField= $form['create[person]'];
self::assertInstanceOf(ChoiceFormField::class, $personField);
$personField->disableValidation()->setValue('CMD1A1A');

// Regular <select>
$nationalityVeld = $form['create[nationality]'];
self::assertInstanceOf(ChoiceFormField::class, $nationalityVeld);
$nationalityVeld->setValue('NED');

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions