Commit ee84980b5781f86d06db5f0c836658c56faccb99
1 parent
34b283ae
Exists in
master
and in
1 other branch
Merge comment with problem during the merge of some problem
see #477
Showing
2 changed files
with
17 additions
and
1 deletions
Show diff stats
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 | ... | ... |