Я недавно пытался обновить Rails (до v5.2.2
) в куче моих репозиториев кода, и два из них не прошли свои модульные тесты после обновления. После того, как я покопался и сравнил сбойные и рабочие версии Gemfile.lock
построчно, я обнаружил, что обновление activestorage
(v5.2.1
-> 5.2.2
) было причиной, и я смог скопировать его и повернуть вспять. Похоже, что была введена проблема (по крайней мере, для тестов; я не видел эту проблему с использованием моего кода лично), когда набор тестов не может получать обновления свойств элемента после события .click
. Кто-нибудь тоже сталкивался с этим? Может ли это быть ошибкой?
Вот пример сообщения об ошибке, которое я получаю:
1) Notifications notifications drawer when clicking the nav will open the drawer
Failure/Error: expect(page).to have_selector('.notifications-drawer', visible: true)
expected to find visible css ".notifications-drawer" but there were no matches. Also found "View all notifications", which matched the selector but not all filters.
# ./spec/features/notifications_spec.rb:88:in `block (4 levels) in <top (required)>'
2) Notifications mark notification as read behavior when a notification is loaded will be marked as read after clicked
Failure/Error: expect(page).to have_css('.notification.read')
expected to find css ".notification.read" but there were no matches
# ./spec/features/notifications_spec.rb:140:in `block (4 levels) in <top (required)>'
Вот два теста, которые не пройдут после обновления:
context 'when clicking the nav' do
before do
find('.notifications-drawer-link').click
end
it 'will open the drawer' do # line 87
expect(page).to have_selector('.notifications-drawer', visible: true)
end
it 'will have a link to all notifications' do
expect(page).to have_selector('.notifications-drawer-link')
end
end
context 'when a notification is loaded' do
it 'will initially be marked as unread' do
expect(page).to have_css('.notification.unread')
end
it 'will be marked as read after clicked' do # line 137
notify_element = '[data-notify-id="' + mock_notifications[:items][0][:id] + '"]'
page.find(notify_element).find('.notifications-date-stamp').trigger("click")
expect(page).to have_css('.notification.read')
end
end