Commit 4991842f9719930e91924303299ba6d0fb590204

Authored by Cyril Mougel
2 parents eb199be4 ee84980b
Exists in master and in 1 other branch production

Merge pull request #508 from shingara/features/merge_comment_too

Merge comment with problem during the merge of some problem
app/interactors/problem_merge.rb
@@ -11,7 +11,9 @@ class ProblemMerge @@ -11,7 +11,9 @@ class ProblemMerge
11 11
12 def merge 12 def merge
13 child_problems.each do |problem| 13 child_problems.each do |problem|
14 - merged_problem.errs.concat Err.where(:problem_id => problem.id) 14 + merged_problem.errs.concat problem.errs
  15 + merged_problem.comments.concat problem.comments
  16 + problem.reload # deference all associate objet to avoid delete him after
15 ProblemDestroy.execute(problem) 17 ProblemDestroy.execute(problem)
16 end 18 end
17 reset_cached_attributes 19 reset_cached_attributes
spec/interactors/problem_merge_spec.rb
@@ -29,6 +29,7 @@ describe ProblemMerge do @@ -29,6 +29,7 @@ describe ProblemMerge do
29 let(:merged_errs) { problem_1.errs } 29 let(:merged_errs) { problem_1.errs }
30 let!(:notice) { Fabricate(:notice, :err => first_errs.first) } 30 let!(:notice) { Fabricate(:notice, :err => first_errs.first) }
31 let!(:notice_1) { Fabricate(:notice, :err => merged_errs.first) } 31 let!(:notice_1) { Fabricate(:notice, :err => merged_errs.first) }
  32 +
32 it 'delete one of problem' do 33 it 'delete one of problem' do
33 expect { 34 expect {
34 problem_merge.merge 35 problem_merge.merge
@@ -44,5 +45,18 @@ describe ProblemMerge do @@ -44,5 +45,18 @@ describe ProblemMerge do
44 ProblemUpdaterCache.should_receive(:new).with(problem).and_return(mock(:update => true)) 45 ProblemUpdaterCache.should_receive(:new).with(problem).and_return(mock(:update => true))
45 problem_merge.merge 46 problem_merge.merge
46 end 47 end
  48 +
  49 + context "with problem with comment" do
  50 + let!(:comment) { Fabricate(:comment, :err => problem ) }
  51 + let!(:comment_2) { Fabricate(:comment, :err => problem_1, :user => comment.user ) }
  52 + it 'merge comment' do
  53 + expect {
  54 + problem_merge.merge
  55 + }.to change{
  56 + problem.comments.size
  57 + }.from(1).to(2)
  58 + expect(comment_2.reload.err).to eq problem
  59 + end
  60 + end
47 end 61 end
48 end 62 end