Простая регистрация DEVISE ... Почему этот тест rspec / capybara не проходит? - PullRequest
1 голос
/ 24 сентября 2011

Типичная страница создания учетной записи DEVISE должна перенаправлять на страницу приветствия для новых пользователей

describe ArtistsController do

  render_views

   ....

describe "Sign UP should redirect to welcome page" do
  it "should redirect to welcome page on valid sign up", :js => true do
    visit destroy_artist_session_path #just to be sure we're logged out
    visit new_artist_registration_path
    fill_in 'Email', :with => 'newguy@newguy.com'
    fill_in 'Password', :with => 'password'
    fill_in 'Password confirmation', :with => 'password'
    click_link_or_button 'Sign up'
    #save_and_open_page <-- reveals we are still on the sign-up page
    page.should have_content("Welcome")

  end
end

Я вручную проверил этот сценарий на своем локальном компьютере, и он отлично работает.Но тест, похоже, не работает;он НЕ переходит на страницу приветствия.Новый пользователь НЕ создан в БД.Капибара не жалуется, что не может найти кнопку или что-то еще.

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 21 октября 2011

У меня была та же проблема, она была подключена к поддоменам .

Ключом сеанса был "lvh.me", но в тестах по умолчанию использовался "example.com".

Мой тест отправлял форму входа правильно, пользователь не прошел проверку подлинности, затем Devise перенаправлял на домашнюю страницу в домене "example.com", и приложение не смогло найти данные сеанса (которые находились в разделе "lvh.me "), и перенаправлял обратно на страницу входа без каких-либо флеш-сообщений или ошибок.

Так что, если вы используете субдомены, обязательно установите хосты Capybara до вход пользователя в систему. Просто для примера вот что я делаю:

def go_to(subdomain)
  Capybara.app_host = "http://#{subdomain}.lvh.me"
  Capybara.server_port = 3000
  host! "#{subdomain}.lvh.me:3000"
end
0 голосов
/ 24 сентября 2011

Похоже, вы перенаправлены обратно на страницу входа.

  • Содержит ли вывод файла save_and_open_page флэш-сообщения?
  • Вы проверяли test.log на наличие улик?
  • Попробуйте настроить драйвер Capybara на механизацию, и вы сможете наблюдать за происходящим - это может помочь в выявлении проблемы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...