diff --git a/init.rb b/init.rb index 057f9aa..124a7c8 100644 --- a/init.rb +++ b/init.rb @@ -4,6 +4,7 @@ ActiveSupport::Reloader.to_prepare do require_dependency 'redmine_drafts/issue_patch' + require_dependency 'redmine_drafts/user_patch' require_dependency 'redmine_drafts/issues_controller_patch' end diff --git a/lib/redmine_drafts/user_patch.rb b/lib/redmine_drafts/user_patch.rb new file mode 100644 index 0000000..af820bc --- /dev/null +++ b/lib/redmine_drafts/user_patch.rb @@ -0,0 +1,6 @@ +require_dependency 'principal' +require_dependency 'user' + +class User < Principal + has_many :drafts, :dependent => :destroy +end \ No newline at end of file diff --git a/spec/models/user_patch_spec.rb b/spec/models/user_patch_spec.rb new file mode 100644 index 0000000..6283410 --- /dev/null +++ b/spec/models/user_patch_spec.rb @@ -0,0 +1,16 @@ +require "spec_helper" +require File.dirname(__FILE__) + '/../../lib/redmine_drafts/user_patch' + +describe "UserPatch" do + fixtures :users + + it "should delete the draft in case of cascade deleting" do + user = User.last + Draft.create(:element_type => Issue, user_id: user.id, element_id: 1, content: 'test') + Draft.create(:element_type => Issue, user_id: user.id, element_id: 2, content: 'MyText') + + expect do + user.destroy + end.to change{ Draft.count }.by(-2) + end +end