This commit is contained in:
Senad Uka
2020-07-15 11:57:21 +02:00
parent 4c49a5db03
commit da8e187430
135 changed files with 1952 additions and 1115 deletions

View File

@@ -0,0 +1,91 @@
require "rails_helper"
describe CastingCallPolicy do
subject { described_class }
let(:user_context) { build(:user_context, user: user, account: user.primary_account) }
context "for an associate" do
let(:user) { create(:user, :associate, admin: false) }
permissions :index? do
it { is_expected.to permit(user_context, subject) }
end
permissions :create? do
it { is_expected.to permit(user_context, subject) }
end
permissions :show? do
it { is_expected.to permit(user_context, subject) }
end
permissions :destroy? do
it { is_expected.to permit(user_context, subject) }
end
permissions :update? do
it { is_expected.to permit(user_context, subject) }
end
permissions :cancel? do
it { is_expected.to permit(user_context, subject) }
end
end
context "for a project manager" do
let(:user) { create(:user, :manager, admin: false) }
permissions :index? do
it { is_expected.to permit(user_context, subject) }
end
permissions :create? do
it { is_expected.to permit(user_context, subject) }
end
permissions :show? do
it { is_expected.to permit(user_context, subject) }
end
permissions :destroy? do
it { is_expected.to permit(user_context, subject) }
end
permissions :update? do
it { is_expected.to permit(user_context, subject) }
end
permissions :cancel? do
it { is_expected.to permit(user_context, subject) }
end
end
context "for account managers" do
let(:user) { create(:user, :account_manager, admin: false) }
permissions :index? do
it { is_expected.to permit(user_context, subject) }
end
permissions :create? do
it { is_expected.to permit(user_context, subject) }
end
permissions :show? do
it { is_expected.to permit(user_context, subject) }
end
permissions :destroy? do
it { is_expected.to permit(user_context, subject) }
end
permissions :update? do
it { is_expected.to permit(user_context, subject) }
end
permissions :cancel? do
it { is_expected.to permit(user_context, subject) }
end
end
end

View File

@@ -75,17 +75,14 @@ describe ContractTemplatePolicy do
end
permissions ".scope" do
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)
let!(:member_project) do
create(:project_with_contract_template, name: "Member Project", members: user, account: account)
end
let!(:non_member_project) do
create(:project_with_contract_template_public, name: "Non-Member Project", account: account)
create(:project_with_contract_template, name: "Non-Member Project", account: account)
end
let!(:outside_project) do
create(:project_with_contract_template_public, name: "Outside Project", account: build(:account))
create(:project_with_contract_template, name: "Outside Project", account: build(:account))
end
let(:account) { build(:account) }
@@ -96,8 +93,7 @@ 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_public_template.contract_templates.first) }
it { is_expected.to include(member_project_private_template.contract_templates.first) }
it { is_expected.to include(member_project.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
@@ -105,17 +101,15 @@ describe ContractTemplatePolicy do
context "for manager" do
let(:user) { create(:user, :manager, primary_account: account) }
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(member_project.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_public_template.contract_templates.first) }
it { is_expected.not_to include(member_project_private_template.contract_templates.first) }
it { is_expected.to include(member_project.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