LINUX.ORG.RU

Rails и rspec - простой тест аутентификации

 , factory-girl, ,


0

1

Добра.
На борту - rails 3.2, rspec 2, factorygirl, capybara и devise.
Имеется банальнейший тест:
spec/acceptance/sign_in_spec.rb

require 'spec_helper'

feature 'Sign in', %q{ As an admin I want to sign in } do

  background do
    visit '/'
    click_link "Войти"
  end

  scenario "Successful Sign In" do
    FactoryGirl.create(:user)
    fill_in 'Email', with: 'john@nhoj.nk'
    fill_in 'Password', with: 'p@ss'
    click_on 'Sign In'
    current_path.should == user_root_path
  end

end # feature 'Sign in'

spec/factories/users.rb

require "factory_girl"

FactoryGirl.define do

  factory :user do
    name 'Testing'
    email 'name@domain.org'
    password 'password'
  end
end

config/routes.rb

CityStop::Application.routes.draw do
  devise_for :users

  root :to => "home#index"
  match 'points' => 'home#index', as: :user_root
end

Однако засада, rake spec ругается на несовпадение путей:
Failures:
||   1) Sign in  As an admin I want to sign in  Successful Sign In
||      Failure/Error: current_path.should == user_root_path
||        expected: "/points"
||             got: "/users/sign_in" (using ==)

Господа, я перелопатил весь SO и не смог понять, что же является причиной. Есть ли какие идеи на этот счёт?



Последнее исправление: ffomg (всего исправлений: 1)

Ответ на: комментарий от UserUnknown

Я в этом деле ламер и мог напутать, но по задумке тест должен заходить на страницу аутентификации, вводить логин и пароль в поля, мацать кнопку и проверять редирект.
В любом случае, если убрать FactoryGirl.create(:user) то ситуация не изменится.
Более того, сейчас я заметил, что страница localhost/points доступна без аутентификации, а такого, как я понимаю, происходить не должно.

ffomg
() автор топика
Ответ на: комментарий от ffomg

Всё, я понял, UserUnknown прав, а я ССЗБ.

ffomg
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.