Upstream sync

This commit is contained in:
Senad Uka
2020-07-14 14:10:30 +02:00
parent 35303cb570
commit 4c49a5db03
28 changed files with 407 additions and 29 deletions

View File

@@ -75,14 +75,17 @@ describe ContractTemplatePolicy do
end
permissions ".scope" do
let!(:member_project) do
create(:project_with_contract_template, name: "Member Project", members: user, account: account)
let!(:member_project_public_template) do
create(:project_with_contract_template_public, name: "Member Project Public Template", members: user, account: account)
end
let!(:member_project_private_template) do
create(:project_with_contract_template_private, name: "Member Project Private Template", members: user, account: account)
end
let!(:non_member_project) do
create(:project_with_contract_template, name: "Non-Member Project", account: account)
create(:project_with_contract_template_public, name: "Non-Member Project", account: account)
end
let!(:outside_project) do
create(:project_with_contract_template, name: "Outside Project", account: build(:account))
create(:project_with_contract_template_public, name: "Outside Project", account: build(:account))
end
let(:account) { build(:account) }
@@ -93,7 +96,8 @@ describe ContractTemplatePolicy do
context "for an account manager" do
let(:user) { create(:user, :account_manager, primary_account: account)}
it { is_expected.to include(member_project.contract_templates.first) }
it { is_expected.to include(member_project_public_template.contract_templates.first) }
it { is_expected.to include(member_project_private_template.contract_templates.first) }
it { is_expected.to include(non_member_project.contract_templates.first) }
it { is_expected.not_to include(outside_project.contract_templates.first) }
end
@@ -101,15 +105,17 @@ describe ContractTemplatePolicy do
context "for manager" do
let(:user) { create(:user, :manager, primary_account: account) }
it { is_expected.to include(member_project.contract_templates.first) }
it { is_expected.to include(member_project_public_template.contract_templates.first) }
it { is_expected.to include(member_project_private_template.contract_templates.first) }
it { is_expected.not_to include(non_member_project.contract_templates.first) }
it { is_expected.not_to include(outside_project.contract_templates.first) }
end
context "for associate" do
let(:user) { create(:user, :associate, primary_account: account) }
it { is_expected.to include(member_project.contract_templates.first) }
it { is_expected.to include(member_project_public_template.contract_templates.first) }
it { is_expected.not_to include(member_project_private_template.contract_templates.first) }
it { is_expected.not_to include(non_member_project.contract_templates.first) }
it { is_expected.not_to include(outside_project.contract_templates.first) }
end