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 11  
12 12 def merge
13 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 17 ProblemDestroy.execute(problem)
16 18 end
17 19 reset_cached_attributes
... ...
spec/interactors/problem_merge_spec.rb
... ... @@ -29,6 +29,7 @@ describe ProblemMerge do
29 29 let(:merged_errs) { problem_1.errs }
30 30 let!(:notice) { Fabricate(:notice, :err => first_errs.first) }
31 31 let!(:notice_1) { Fabricate(:notice, :err => merged_errs.first) }
  32 +
32 33 it 'delete one of problem' do
33 34 expect {
34 35 problem_merge.merge
... ... @@ -44,5 +45,18 @@ describe ProblemMerge do
44 45 ProblemUpdaterCache.should_receive(:new).with(problem).and_return(mock(:update => true))
45 46 problem_merge.merge
46 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 61 end
48 62 end
... ...