mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
52 lines
1.5 KiB
Ruby
52 lines
1.5 KiB
Ruby
require 'spec_helper'
|
|
require 'spree/api/testing_support/helpers'
|
|
|
|
describe UserPasswordsController do
|
|
let(:user) { create(:user) }
|
|
|
|
before do
|
|
@request.env["devise.mapping"] = Devise.mappings[:spree_user]
|
|
ActionMailer::Base.default_url_options[:host] = "test.host"
|
|
end
|
|
|
|
describe "create" do
|
|
it "returns errors" do
|
|
spree_post :create, spree_user: {}
|
|
response.should be_success
|
|
response.should render_template "spree/user_passwords/new"
|
|
end
|
|
|
|
it "redirects to login when data is valid" do
|
|
spree_post :create, spree_user: { email: user.email}
|
|
response.should be_redirect
|
|
end
|
|
end
|
|
|
|
describe "edit" do
|
|
context "when given a redirect" do
|
|
it "stores the redirect path in 'spree_user_return_to'" do
|
|
spree_post :edit, reset_password_token: "token", return_to: "/return_path"
|
|
expect(session["spree_user_return_to"]).to eq "/return_path"
|
|
end
|
|
end
|
|
end
|
|
|
|
it "renders Darkswarm" do
|
|
clear_jobs
|
|
user.send_reset_password_instructions
|
|
flush_jobs # Send the reset password instructions
|
|
user.reload
|
|
spree_get :edit, reset_password_token: user.reset_password_token
|
|
response.should render_template "user_passwords/edit"
|
|
end
|
|
|
|
describe "via ajax" do
|
|
it "returns errors" do
|
|
xhr :post, :create, spree_user: {}, use_route: :spree
|
|
json = JSON.parse(response.body)
|
|
response.status.should == 401
|
|
json.should == {"email"=>["can't be blank"]}
|
|
end
|
|
end
|
|
end
|