mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-04-04 07:09:14 +00:00
Enterprise validates owner enterprise_limit
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Enterprise do
|
||||
include AuthenticationWorkflow
|
||||
|
||||
describe "associations" do
|
||||
it { should belong_to(:owner) }
|
||||
@@ -54,9 +55,9 @@ describe Enterprise do
|
||||
end
|
||||
|
||||
describe "ownership" do
|
||||
let(:u1) { create(:user) }
|
||||
let(:u2) { create(:user) }
|
||||
let(:e) { create(:enterprise, owner: u1 ) }
|
||||
let(:u1) { create_enterprise_user }
|
||||
let(:u2) { create_enterprise_user }
|
||||
let!(:e) { create(:enterprise, owner: u1 ) }
|
||||
|
||||
it "adds new owner to list of managers" do
|
||||
expect(e.owner).to eq u1
|
||||
@@ -68,6 +69,16 @@ describe Enterprise do
|
||||
expect(e.owner).to eq u2
|
||||
expect(e.users).to include u1, u2
|
||||
end
|
||||
|
||||
it "validates ownership limit" do
|
||||
expect(u1.enterprise_limit).to be 1
|
||||
expect(u1.owned_enterprises(:reload)).to eq [e]
|
||||
e2 = create(:enterprise, owner: u2 )
|
||||
expect{
|
||||
e2.owner = u1
|
||||
e2.save!
|
||||
}.to raise_error ActiveRecord::RecordInvalid, "Validation failed: You are not permitted to own own any more enterprises (limit is 1)."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -3,23 +3,23 @@ describe Spree.user_class do
|
||||
it { should have_many(:owned_enterprises) }
|
||||
|
||||
describe "enterprise ownership" do
|
||||
let(:u1) { create(:user) }
|
||||
let(:u2) { create(:user) }
|
||||
let(:e1) { create(:enterprise, owner: u1) }
|
||||
let(:e2) { create(:enterprise, owner: u1) }
|
||||
let(:u1) { create(:user, enterprise_limit: 2) }
|
||||
let(:u2) { create(:user, enterprise_limit: 1) }
|
||||
let!(:e1) { create(:enterprise, owner: u1) }
|
||||
let!(:e2) { create(:enterprise, owner: u1) }
|
||||
|
||||
it "provides access to owned enteprises" do
|
||||
expect(u1.owned_enterprises).to include e1, e2
|
||||
it "provides access to owned enterprises" do
|
||||
expect(u1.owned_enterprises(:reload)).to include e1, e2
|
||||
end
|
||||
|
||||
it "enforces the limit on the number of enterprise owned" do
|
||||
expect(u2.owned_enterprises).to eq []
|
||||
expect(u2.owned_enterprises(:reload)).to eq []
|
||||
u2.owned_enterprises << e1
|
||||
u2.owned_enterprises << e2
|
||||
expect(u2.save!).to_not raise_error
|
||||
expect {
|
||||
u2.owned_enterprises << e2
|
||||
u2.save!
|
||||
}.to raise_error ActiveRecord::RecordInvalid, "Validation failed: The nominated user is not permitted to own own any more enterprises."
|
||||
|
||||
}.to raise_error ActiveRecord::RecordInvalid, "Validation failed: The nominated user is not permitted to own own any more enterprises (limit is 1)."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user