Files
openfoodnetwork/spec/controllers/user_registrations_controller_spec.rb
Maikel Linke 3ae073dce5 Convert specs to RSpec 3.7.1 syntax with Transpec
This conversion is done by Transpec 3.3.0 with the following command:
    transpec spec/controllers/user_registrations_controller_spec.rb

* 10 conversions
    from: obj.should
      to: expect(obj).to

* 7 conversions
    from: == expected
      to: eq(expected)

For more details: https://github.com/yujinakayama/transpec#supported-conversions
2018-09-27 13:33:08 +10:00

56 lines
2.0 KiB
Ruby

require 'spec_helper'
require 'spree/api/testing_support/helpers'
describe UserRegistrationsController, type: :controller do
before do
@request.env["devise.mapping"] = Devise.mappings[:spree_user]
end
describe "via ajax" do
render_views
it "returns errors when registration fails" do
xhr :post, :create, spree_user: {}, :use_route => :spree
expect(response.status).to eq(401)
json = JSON.parse(response.body)
expect(json).to eq({"email" => ["can't be blank"], "password" => ["can't be blank"]})
end
it "returns 200 when registration succeeds" do
xhr :post, :create, spree_user: {email: "test@test.com", password: "testy123", password_confirmation: "testy123"}, :use_route => :spree
expect(response.status).to eq(200)
json = JSON.parse(response.body)
expect(json).to eq({"email" => "test@test.com"})
expect(controller.spree_current_user).to be_nil
end
end
context "when registration fails" do
it "renders new" do
spree_post :create, spree_user: {}
expect(response.status).to eq(200)
expect(response).to render_template "spree/user_registrations/new"
end
end
context "when registration succeeds" do
context "when referer is not '/checkout'" do
it "redirects to root" do
spree_post :create, spree_user: {email: "test@test.com", password: "testy123", password_confirmation: "testy123"}, :use_route => :spree
expect(response).to redirect_to root_path
expect(assigns[:user].email).to eq("test@test.com")
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: "test@test.com", password: "testy123", password_confirmation: "testy123"}, :use_route => :spree
expect(response).to redirect_to checkout_path
expect(assigns[:user].email).to eq("test@test.com")
end
end
end
end