Cast me
This commit is contained in:
91
spec/policies/casting_call_policy_spec.rb
Normal file
91
spec/policies/casting_call_policy_spec.rb
Normal 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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user