click_on
не гарантируется ожидание каких-либо действий, вызванных им, потому что у Капибары нет возможности узнать, какие действия, если таковые будут, будут выполнены.Именно по этой причине Capybara имеет встроенное поведение ожидания в средствах поиска, сопоставлениях и утверждениях, позволяющие страницам догонять тест.В этом случае вы используете универсальное утверждение против возвращенной вещи Капибары, а не сопоставителя, предоставленного Капибарой.Вместо assert page.current_path == '/books'
вы должны использовать
assert_current_path '/books'
, который будет некоторое время проверять путь, чтобы увидеть, если / когда он изменится.Если это не решит вашу проблему, это будет означать, что ваш логин / регистрация не удалась, что должно быть очевидно для подтверждения, посмотрев на страницу (html или скриншот).
Примечание: я бы предположил, что ваш тест долженОшибка, так как ввод t!
в качестве адреса электронной почты должен провалиться.