Browse Source

Fixes #3845 - Removing calendars via UI and API does not check for references.

Rolf Schmidt 3 years ago
parent
commit
44422c5357
2 changed files with 15 additions and 0 deletions
  1. 1 0
      app/controllers/calendars_controller.rb
  2. 14 0
      spec/requests/calendar_spec.rb

+ 1 - 0
app/controllers/calendars_controller.rb

@@ -38,6 +38,7 @@ class CalendarsController < ApplicationController
   end
 
   def destroy
+    model_references_check(Calendar, params)
     model_destroy_render(Calendar, params)
   end
 

+ 14 - 0
spec/requests/calendar_spec.rb

@@ -76,4 +76,18 @@ RSpec.describe 'Calendars', type: :request do
     end
   end
 
+  describe 'Removing calendars via UI and API does not check for references #3845', authenticated_as: -> { user } do
+    let(:calendar) { create(:calendar) }
+    let(:sla) { create(:sla, calendar: calendar) }
+    let(:user) { create(:admin) }
+
+    before do
+      sla
+    end
+
+    it 'does return reference error on delete if related objects exist' do
+      delete "/api/v1/calendars/#{calendar.id}", params: {}, as: :json
+      expect(json_response['error']).to eq("Can't delete, object has references.")
+    end
+  end
 end