2011-01-24 2 views
1

Я использую Завещание для проверки подлинности пользователя и иметь следующий неисправный огурец сценарий:Входа тест неудачи с Завещанием и огурцом

Scenario: Log in to the system 
    Given a user called "test" with a password of "secret" 
    And I am not logged in # Just visits /users/sign_out 
    When I go to the log in page 
    And I fill in "user_username" with "test" 
    And I fill in "user_password" with "secret" 
    And I press "Sign in" 
    Then I should see "Signed in successfully." 

Если я воткнуть «Тогда покажите мне страницу» в конце I» m показана страница с пустой регистрационной формой.

Следующие (очень похожи) тесты работает:

Scenario: Fail to log in with invalid credentials 
    Given a user called "test" with a password of "secret" 
    And I am not logged in 
    When I go to the log in page 
    And I fill in "user_username" with "test" 
    And I fill in "user_password" with "invalid password" 
    And I press "Sign in" 
    Then I should see "Invalid email or password." 

... поэтому я предполагаю, что бревно в делает редирект после успешной проверки, что Огурцы не следуют (FWIW журнал в все работает, когда я делаю это вручную в браузере) ... может ли кто-нибудь сказать мне, как пройти тест?

Спасибо, Ash

EDIT: «(. Подписанная в успешно») Это последний шаг, который терпит неудачу с? Ожидаемой #has_content «чтобы вернуться правда, есть ложная» ошибка (... гм. .. должен был упомянуть, что раньше!)

ответ

1

Исправлено! Я только что загрузил свой сервер с тестовой средой и воспроизвел проблему.

Я использую ldap_authenticatable с config.ldap_create_user = true. При первом входе в учетную запись пользователя создается, если он не существует (чего нет в недавно очищенном тестировании db), однако затем он перенаправляется обратно на страницу входа в систему, а не после корневого маршрута. Последующие входы журнала выполняют ожидаемое поведение. Таким образом, следующие испытания пройдены:

Scenario: Log in to the system 
    Given a user called "test" with a password of "secret" 
    And I am not logged in 
    When I go to the log in page 
    And I fill in "user_username" with "test" 
    And I fill in "user_password" with "secret" 
    And I press "Sign in" 
    And I fill in "user_username" with "test" 
    And I fill in "user_password" with "secret" 
    And I press "Sign in" 
    Then I should see "Signed in successfully." 

Большое спасибо pjammer за резиновое уклонение!

+0

И, конечно же, это проблема на странице ldap_authenticatable: https://github.com/cschiewek/devise_ldap_authenticatable/issues#issue/3 – Ash

+1

if только был способ поблагодарить меня за точки переполнения стека ... :-) – pjammer

+0

Просто смотрел на это - я всего лишь 1 раз сказал, что ты сказал ... не могу думать о другом способе наградные очки! Спасибо за помощь! – Ash

1

- поле id user_username или оно user_email или что-то в этом роде?

Также, что происходит, когда я перехожу на страницу входа? вы уверены, что поедете туда?

+0

Да, это полевые идентификаторы. Я не думаю, что проблема в этой области - другой тест проходит, поэтому я знаю, что они заполняются правильно, чтобы это работало. «Когда я перехожу на страницу входа в систему» ​​- это шаг Capybara с «страницей входа», добавленной в paths.rb. Опять же, не думайте, что это проблема - я не могу уйти от этой страницы, поэтому она появляется в «показать мне страницу»! – Ash

+1

и проверить пользователя с тайной (я знаю, что вы запутаны), но этот светильник или фабрика тоже существует? – pjammer

+0

Это действительно пустой шаг - я аутентифицируюсь на сервере LDAP, и я знаю, что пользователь существует. Все работает плавно, если я следую инструкциям вручную в браузере. Это просто последний шаг. (На самом деле я просто понял, что должен был сделать это ясно! My Bad .. редактирование сейчас!) – Ash

Смежные вопросы