На форме есть обычный select. Я тестирую эту форму через codeception (функциональные тесты).
Там есть такой метод $I->seeInFormFields. Никак не пойму как ему указать список вариантов селекта. Т.е. я заранее знаю какие там должны быть варианты и хочу убедиться что они там все присутствуют. Например если я пишу так:
$I->seeInFormFields('form', ['Article[section_id]' => $sections]);
То мне выдает:
1) ArticleFormCest: Test add new article
Test tests\functional\ArticleFormCest.php:testAddNewArticle
Step See in form fields "form",{"Article[section_id]":["section1"]}
Fail Failed asserting that `section1` is in select's value: array (
0 => '',
)
Failed asserting that an array contains 'section1'.
Но я точно знаю что в списке этого селекта эта секция есть. Просто по умолчанию там ничего не выбрано.
upd. Дебагом я понял почему так происходит. У меня на форме два селекта, связанных друг с другом. Т.е. сначала второй селект пустой и недоступный для выбора пока не выберешь одну из опций в первом. После чего подгружаются опции во второй. Я предварительно выбрал опцию в первом методом $I->selectOption, но почему-то толи она так не выбралась, толи не подгрузилось во втором, но во втором пусто... Я html глянул через $I->grabPageSource() перед вызовом $I->seeInFormFields. Не знаю как быть... В браузере все работает корректно. Возможно тестер выбирает опцию как-то не так как пользователь. Без лишних кликов на которые ориентируется javascript чтобы подгрузить во второй select опции.