Я пытаюсь получить регистрационную форму, работающую с Devise; Я проверяю это с огурцом.
Когда пользователь регистрируется, я отправляю подтверждение по электронной почте. Что-то идет не так при выполнении моего теста.
Это мой сценарий:
Scenario: Signing in via confirmation
Given there are the following users:
| email | password | unconfirmed |
| user@ticketee.com | password | true |
And "user@ticketee.com" opens the email with subject "Confirmation instructions"
And they click the first link in the email
Then I should see "Your account was successfully confirmed."
And I should see "Signed in as user@ticketee.com"
Однако я получаю следующую ошибку:
expected there to be content "Your account was successfully confirmed. You are now signed in." in "\n Ticketee\n \n\nTicketee\nSign up\n Sign in\nResend confirmation instructions\n\n\n \n 1 error prohibited this user from being saved:\n Confirmation token is invalid\n\n\n Email\n\n \n\n Sign inSign upForgot your password?" (RSpec::Expectations::ExpectationNotMetError)
Я думаю, что важная часть здесь:
1 error prohibited this user from being saved:\n Confirmation token is invalid
Я проверил это вручную (пошел, чтобы зарегистрироваться и щелкнул ссылку подтверждения в электронном письме), и это работает нормально. Только когда я проверяю через Cucumber, я получаю сообщение «Маркер подтверждения недействителен». Кто-нибудь знает, как я могу это исправить? Я хотел бы, чтобы мои тесты прошли ..
Большое спасибо.
РЕДАКТИРОВАТЬ: Шаги просят в комментариях:
When /^(?:I|they|"([^"]*?)") opens? the email with subject "([^"]*?)"$/ do |address, subject|
open_email(address, :with_subject => subject)
end
Нажатие на ссылку:
When /^(?:I|they) click the first link in the email$/ do
click_first_link_in_email
end
Я только что посмотрел полученное письмо с подтверждением, и мой адрес электронной почты анализируется как ссылка mailto:; Я изменил первый шаг ссылки на это:
And they follow "Confirm my account" in the email
но это тоже не сработало .. Я все еще получаю сообщение об ошибке неверного токена.