diff --git a/app/policies/lettings_log_policy.rb b/app/policies/lettings_log_policy.rb index 8d9e41f4e..553c18b8d 100644 --- a/app/policies/lettings_log_policy.rb +++ b/app/policies/lettings_log_policy.rb @@ -10,7 +10,7 @@ class LettingsLogPolicy return false unless log && user # Can only delete editable logs - return false unless log.collection_period_open? + return false unless log.collection_period_open_for_editing? # Support users can delete any log return true if user.support? diff --git a/app/policies/sales_log_policy.rb b/app/policies/sales_log_policy.rb index d7776a1b8..916862e74 100644 --- a/app/policies/sales_log_policy.rb +++ b/app/policies/sales_log_policy.rb @@ -10,7 +10,7 @@ class SalesLogPolicy return false unless log && user # Can only delete editable logs - return false unless log.collection_period_open? + return false unless log.collection_period_open_for_editing? # Support users can delete any log return true if user.support? diff --git a/spec/policies/lettings_log_policy_spec.rb b/spec/policies/lettings_log_policy_spec.rb index 001fbf3c8..f32db0c77 100644 --- a/spec/policies/lettings_log_policy_spec.rb +++ b/spec/policies/lettings_log_policy_spec.rb @@ -8,7 +8,7 @@ RSpec.describe LettingsLogPolicy do context "when log nil" do before do - allow(log).to receive(:collection_period_open?).and_return(false) + allow(log).to receive(:collection_period_open_for_editing?).and_return(false) end it "does not allow deletion of log" do @@ -18,7 +18,7 @@ RSpec.describe LettingsLogPolicy do context "when user nil" do before do - allow(log).to receive(:collection_period_open?).and_return(false) + allow(log).to receive(:collection_period_open_for_editing?).and_return(false) end it "does not allow deletion of log" do @@ -26,21 +26,31 @@ RSpec.describe LettingsLogPolicy do end end - context "when collection period closed" do + context "when collection period closed for editing" do before do - allow(log).to receive(:collection_period_open?).and_return(false) + allow(log).to receive(:collection_period_open_for_editing?).and_return(false) end it "does not allow deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).not_to permit(build(:user, :support), log) end end - context "when collection period open" do + context "when new logs can no longer be created but the log is still editable" do before do - allow(log).to receive(:collection_period_open?).and_return(true) + allow(log).to receive_messages(collection_period_open?: false, collection_period_open_for_editing?: true) + end + + it "allows deletion of log" do + expect(policy).to permit(build(:user, :support), log) + end + end + + context "when collection period open for editing" do + before do + allow(log).to receive(:collection_period_open_for_editing?).and_return(true) end context "when not started" do @@ -60,13 +70,13 @@ RSpec.describe LettingsLogPolicy do let(:user_of_managing_org) { create(:user, :data_coordinator, organisation: log.managing_organisation) } it "does not allow deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).not_to permit(user, log) end it "allows deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).to permit(user_of_managing_org, log) end @@ -84,7 +94,7 @@ RSpec.describe LettingsLogPolicy do let(:user) { create(:user) } it "does not allow deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).not_to permit(user, log) end diff --git a/spec/policies/sales_log_policy_spec.rb b/spec/policies/sales_log_policy_spec.rb index bf14b7066..07ed4d2eb 100644 --- a/spec/policies/sales_log_policy_spec.rb +++ b/spec/policies/sales_log_policy_spec.rb @@ -8,7 +8,7 @@ RSpec.describe SalesLogPolicy do context "when log nil" do before do - allow(log).to receive(:collection_period_open?).and_return(false) + allow(log).to receive(:collection_period_open_for_editing?).and_return(false) end it "does not allow deletion of log" do @@ -18,7 +18,7 @@ RSpec.describe SalesLogPolicy do context "when user nil" do before do - allow(log).to receive(:collection_period_open?).and_return(false) + allow(log).to receive(:collection_period_open_for_editing?).and_return(false) end it "does not allow deletion of log" do @@ -26,21 +26,31 @@ RSpec.describe SalesLogPolicy do end end - context "when collection period closed" do + context "when collection period closed for editing" do before do - allow(log).to receive(:collection_period_open?).and_return(false) + allow(log).to receive(:collection_period_open_for_editing?).and_return(false) end it "does not allow deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).not_to permit(build(:user, :support), log) end end - context "when collection period open" do + context "when new logs can no longer be created but the log is still editable" do before do - allow(log).to receive(:collection_period_open?).and_return(true) + allow(log).to receive_messages(collection_period_open?: false, collection_period_open_for_editing?: true) + end + + it "allows deletion of log" do + expect(policy).to permit(build(:user, :support), log) + end + end + + context "when collection period open for editing" do + before do + allow(log).to receive(:collection_period_open_for_editing?).and_return(true) end context "when not started" do @@ -60,13 +70,13 @@ RSpec.describe SalesLogPolicy do let(:user_of_owning_org) { create(:user, :data_coordinator, organisation: log.owning_organisation) } it "does not allow deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).not_to permit(user, log) end it "allows deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).to permit(user_of_owning_org, log) end @@ -76,7 +86,7 @@ RSpec.describe SalesLogPolicy do let(:user) { create(:user, :support) } it "does allow deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).to permit(user, log) end @@ -86,7 +96,7 @@ RSpec.describe SalesLogPolicy do let(:user) { create(:user) } it "does not allow deletion of log" do - expect(log).to receive(:collection_period_open?) + expect(log).to receive(:collection_period_open_for_editing?) expect(policy).not_to permit(user, log) end