Files
openfoodnetwork/spec/controllers/spree/user_sessions_controller_spec.rb
Maikel Linke dcb6f4676d Remove all unnecessary spec_helper require statements
The `.rspec` file is doing this for us.
2026-01-21 12:35:34 +11:00

54 lines
1.5 KiB
Ruby

# frozen_string_literal: false
RSpec.describe Spree::UserSessionsController do
let(:user) { create(:user) }
before do
@request.env["devise.mapping"] = Devise.mappings[:spree_user]
end
describe "create" do
context "success" do
context "when referer is not '/checkout'" do
it "redirects to root" do
spree_post :create, spree_user: { email: user.email, password: user.password }
expect(response).to have_http_status(:ok)
expect(response.body).to match(root_path).and match("redirect")
end
end
context "when referer is '/checkout'" do
before { @request.env['HTTP_REFERER'] = 'http://test.com/checkout' }
it "redirects to checkout" do
spree_post :create, spree_user: { email: user.email, password: user.password }
expect(response).to have_http_status(:ok)
expect(response.body).to match(checkout_path).and match("redirect")
end
end
end
context "failing to log in" do
render_views
it "returns an error" do
spree_post :create, spree_user: { email: user.email, password: "wrong" }
expect(response).to have_http_status(:unauthorized)
expect(response.body).to include "Invalid email or password"
end
end
end
describe "destroy" do
it "redirects to root with flash message" do
spree_post :destroy
expect(response).to redirect_to root_path
expect(flash[:notice]).to eq "Signed out successfully."
end
end
end