mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
43 lines
1.3 KiB
Ruby
43 lines
1.3 KiB
Ruby
require 'spec_helper'
|
|
|
|
module Admin
|
|
describe ManagerInvitationsController, type: :controller do
|
|
let!(:existing_user) { create(:user) }
|
|
let!(:enterprise) { create(:enterprise) }
|
|
let(:admin) { create(:admin_user) }
|
|
|
|
describe "#create" do
|
|
context "when given email matches an existing user" do
|
|
before do
|
|
controller.stub spree_current_user: admin
|
|
end
|
|
|
|
it "returns an error" do
|
|
spree_post :create, {email: existing_user.email, enterprise_id: enterprise.id}
|
|
|
|
expect(response.status).to eq 422
|
|
expect(json_response['errors']).to eq I18n.t('admin.enterprises.invite_manager.user_already_exists')
|
|
end
|
|
end
|
|
|
|
context "signing up a new user" do
|
|
before do
|
|
controller.stub spree_current_user: admin
|
|
end
|
|
|
|
it "creates a new user, sends an invitation email, and returns the user id" do
|
|
expect do
|
|
spree_post :create, {email: 'un.registered@email.com', enterprise_id: enterprise.id}
|
|
end.to enqueue_job Delayed::PerformableMethod
|
|
|
|
new_user = Spree::User.find_by_email('un.registered@email.com')
|
|
|
|
expect(new_user.reset_password_token).to_not be_nil
|
|
expect(response.status).to eq 200
|
|
expect(json_response['user']).to eq new_user.id
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|