diff options
author | Yamagishi Kazutoshi <ykzts@desire.sh> | 2017-06-02 00:25:59 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-06-01 17:25:59 +0200 |
commit | 509b0cfafc0857538d63f4b93b26462f035d458b (patch) | |
tree | d1f9a889e45de810070684831ff9775846371e70 /spec/features | |
parent | fda5c699c2d1165381da87ffe12ebc92e6529f47 (diff) |
Add scenarios for log in (#3497)
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/log_in_spec.rb | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb index 6dc3cd2f4..ed626d880 100644 --- a/spec/features/log_in_spec.rb +++ b/spec/features/log_in_spec.rb @@ -1,19 +1,47 @@ require "rails_helper" feature "Log in" do - given(:email) { "test@examle.com" } - given(:password) { "password" } + given(:email) { "test@examle.com" } + given(:password) { "password" } + given(:confirmed_at) { Time.now } background do - Fabricate(:user, email: email, password: password) + Fabricate(:user, email: email, password: password, confirmed_at: confirmed_at) + visit new_user_session_path end + subject { page } + scenario "A valid email and password user is able to log in" do - visit new_user_session_path fill_in "user_email", with: email fill_in "user_password", with: password - click_on "Log in" + click_on I18n.t('auth.login') + + is_expected.to have_css("div.app-holder") + end + + scenario "A invalid email and password user is not able to log in" do + fill_in "user_email", with: "invalid_email" + fill_in "user_password", with: "invalid_password" + click_on I18n.t('auth.login') + + is_expected.to have_css(".flash-message", text: failure_message("invalid")) + end + + context do + given(:confirmed_at) { nil } + + scenario "A unconfirmed user is not able to log in" do + fill_in "user_email", with: email + fill_in "user_password", with: password + click_on I18n.t('auth.login') + + is_expected.to have_css(".flash-message", text: failure_message("unconfirmed")) + end + end - expect(page).to have_css "div.app-holder" + def failure_message(message) + keys = User.authentication_keys.map { |key| User.human_attribute_name(key) } + I18n.t("devise.failure.#{message}", authentication_keys: keys.join("support.array.words_connector")) end end |