mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
57 lines
1.7 KiB
Ruby
57 lines
1.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe UserRegistrationsController, type: :controller do
|
|
before do
|
|
@request.env["devise.mapping"] = Devise.mappings[:spree_user]
|
|
end
|
|
|
|
describe "create" do
|
|
render_views
|
|
|
|
let(:user_params) do
|
|
{
|
|
email: "test@test.com",
|
|
password: "testy123",
|
|
password_confirmation: "testy123"
|
|
}
|
|
end
|
|
|
|
it "returns validation errors" do
|
|
post :create, params: { spree_user: {}, use_route: :spree }, as: :json
|
|
expect(response.status).to eq(401)
|
|
json = response.parsed_body
|
|
expect(json).to eq("email" => ["can't be blank"], "password" => ["can't be blank"])
|
|
end
|
|
|
|
it "returns error when emailing fails" do
|
|
allow(Spree::UserMailer).to receive(:confirmation_instructions).and_raise("Some error")
|
|
expect(Alert).to receive(:raise)
|
|
|
|
post :create, params: { spree_user: user_params, use_route: :spree }, as: :json
|
|
|
|
expect(response.status).to eq(401)
|
|
json = response.parsed_body
|
|
expect(json).to eq(
|
|
"message" =>
|
|
'Something went wrong while creating your account. Check your email address and try again.'
|
|
)
|
|
end
|
|
|
|
it "returns 200 when registration succeeds" do
|
|
post :create, params: { spree_user: user_params, use_route: :spree }, as: :json
|
|
expect(response.status).to eq(200)
|
|
json = response.parsed_body
|
|
expect(json).to eq("email" => "test@test.com")
|
|
expect(controller.spree_current_user).to be_nil
|
|
end
|
|
|
|
it "sets user.locale from cookie on create" do
|
|
cookies[:locale] = "pt"
|
|
post :create, params: { spree_user: user_params, use_route: :spree }, as: :json
|
|
expect(assigns[:user].locale).to eq("pt")
|
|
end
|
|
end
|
|
end
|