summaryrefslogtreecommitdiff
path: root/spec/features
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2015-02-01 21:28:46 -0700
committermo khan <mo@mokhan.ca>2015-02-01 21:28:46 -0700
commite5bd627538b428fe94f16ee430b4cdad085f10f2 (patch)
treef31da0ba2d294c4fe29587f0d8591b8b7e48daaf /spec/features
parent2acf0153b6a21739fd8b1ae37e199cb0bf800f52 (diff)
add spec to logout user.
Diffstat (limited to 'spec/features')
-rw-r--r--spec/features/sessions_spec.rb70
1 files changed, 40 insertions, 30 deletions
diff --git a/spec/features/sessions_spec.rb b/spec/features/sessions_spec.rb
index 3bcf9102..b87619ac 100644
--- a/spec/features/sessions_spec.rb
+++ b/spec/features/sessions_spec.rb
@@ -1,50 +1,60 @@
require "rails_helper"
describe "Logins" do
- describe "GET /login" do
- subject { LoginPage.new }
- let(:error_message) { I18n.t("sessions.create.failure.invalid") }
+ subject { LoginPage.new }
+ let(:error_message) { I18n.t("sessions.create.failure.invalid") }
- before :each do
- subject.visit_page
- end
-
- context "when an email is registered" do
- let!(:user) { create(:user, password: "password") }
-
- context "when the password is correct" do
- before :each do
- subject.login_with(email: user.email, password: "password")
- end
+ before :each do
+ subject.visit_page
+ end
- it "logs the user in" do
- expect(page).to have_content("Log Out")
- end
+ context "when an email is registered" do
+ let!(:user) { create(:user, password: "password") }
- it "has no errors" do
- expect(page).to_not have_content(error_message)
- end
+ context "when the password is correct" do
+ before :each do
+ subject.login_with(email: user.email, password: "password")
end
- context "when the password is incorrect" do
- before :each do
- subject.login_with(email: user.email, password: "wrong")
- end
+ it "logs the user in" do
+ expect(page).to have_content("Log Out")
+ end
- it "displays an error" do
- expect(page).to have_content(error_message)
- end
+ it "has no errors" do
+ expect(page).to_not have_content(error_message)
end
end
- context "when an email is not known" do
+ context "when the password is incorrect" do
before :each do
- subject.login_with(email: "test@example.com", password: "password")
+ subject.login_with(email: user.email, password: "wrong")
end
- it "displays an error message" do
+ it "displays an error" do
expect(page).to have_content(error_message)
end
end
end
+
+ context "when an email is not known" do
+ before :each do
+ subject.login_with(email: "test@example.com", password: "password")
+ end
+
+ it "displays an error message" do
+ expect(page).to have_content(error_message)
+ end
+ end
+
+ context "when clicking on the log out button" do
+ let(:dashboard_page) { DashboardPage.new }
+ let(:user) { create(:user, password: "password") }
+
+ it "redirects you to the home page" do
+ subject.visit_page
+ subject.login_with(email: user.email, password: 'password')
+ dashboard_page.logout
+ expect(current_path).to eql(root_path)
+ end
+ end
end