Commit 507edf53c908348eb77eafb2b924b48ae42f7952

Authored by Nick Recobra
1 parent fbd103d2
Exists in master and in 1 other branch production

Run unmerge smoothly on problem which migration form err was incorrect.

app/models/problem.rb
@@ -76,7 +76,9 @@ class Problem @@ -76,7 +76,9 @@ class Problem
76 end 76 end
77 77
78 def unmerge! 78 def unmerge!
79 - [self] + errs[1..-1].map(&:id).map do |err_id| 79 + problem_errs = errs.to_a
  80 + problem_errs.shift
  81 + [self] + problem_errs.map(&:id).map do |err_id|
80 err = Err.find(err_id) 82 err = Err.find(err_id)
81 app.problems.create.tap do |new_problem| 83 app.problems.create.tap do |new_problem|
82 err.update_attribute(:problem_id, new_problem.id) 84 err.update_attribute(:problem_id, new_problem.id)
spec/models/problem_spec.rb
@@ -98,11 +98,12 @@ describe Problem do @@ -98,11 +98,12 @@ describe Problem do
98 merged_problem = Problem.merge!(problem1, problem2) 98 merged_problem = Problem.merge!(problem1, problem2)
99 merged_problem.errs.length.should == 2 99 merged_problem.errs.length.should == 2
100 100
101 - lambda {  
102 - problems = merged_problem.unmerge!  
103 - problems.length.should == 2  
104 - merged_problem.errs(true).length.should == 1  
105 - }.should change(Problem, :count).by(1) 101 + expect { merged_problem.unmerge! }.to change(Problem, :count).by(1)
  102 + merged_problem.errs(true).length.should == 1
  103 + end
  104 +
  105 + it "runs smoothly for problem without errs" do
  106 + expect { Factory(:problem).unmerge! }.not_to raise_error
106 end 107 end
107 end 108 end
108 109