У меня есть необходимый модал, который отображается, когда пользователь еще не выполнил условия обслуживания сайта. Мне нужно проверить, чтобы убедиться, что модальный бутстрап отображается после просмотра большого количества документации. Я все еще не знаю, как это сделать.
# application.html.haml
.container-fluid
- if user_has_not_accepted_terms?
= render 'parts/terms_modal'
мой модал
.modal#terms_modal{'tabindex': "-1", role: "dialog", 'data-
keyboard':false, 'data-backdrop': "static"}
.modal-dialog{role: "document"}
.modal-content
.modal-header
%h5.modal-title
Our Terms of Service have changed
.modal-body
%p
Please take a minute and review our updated BLAH
.modal-footer
= link_to 'Accept Terms of Service', accept_terms_user_profile_path(current_user.id, current_user), method: :patch, class: 'btn btn-primary mx-auto'
J, чтобы убедиться, что модал открывается при загрузке страницы
$(document).on('turbolinks:load', ->
$('#terms_modal').modal('show')
)
$(document).on('page:load', ->
$('#terms_modal').modal('show')
)
Я знаю, что пользователь, с которым я тестирую, еще не принял условия, и условное выражение возвращает true, также, когда я запускаю вызов save_and_open_page в моем тесте, я возвращаю HTML с модальным в нем
до сих пор я пробовал тестировать как
# accepting_terms_spec.rb
...
scenario 'user can accept terms of service', js: true do
... #user sign in and visit '/'
within('.modal#terms_modal) do
click_on('Accept Terms of Service')
end
expect(page).to have_content('Success')
end
Я получаю возврат из теста, в котором состояние .modal не видно.