Так, если Capybara может взаимодействовать с DOM, и мое приложение отправляет форму через AJAX и возвращает JSON, может Capybara это увидит? Я не нахожу способа получить ответ AJAX в API Capybara.
Вот пример того, что я делаю:
# Cucumber step_definition
Then(/^I should be able to create a household$/) do
click_link 'Next'
page.should have_selector 'form#household-form'
fill_in 'Name', with: name = Faker::Name.last_name
click_button 'Create'
page.wait_until do
page.evaluate_script('$.active') == 0 # really awesome hack to wait for ajax
end
@user.reload.households.first.name.should eq name
end
Я бы предпочел не обращаться к базе данных снова, чтобы проверить результат, а вместо этого сделать что-то вроде:
xhr.response_data.should be_json
Проверка того, что мой ответ json - это то, что я и думал.
Я просто экспериментирую здесь, пытаясь привыкнуть к огурцу и капибаре.