Commit a55223faa1c8c2f9c6385b0300db4b91fc75eeb5
1 parent
85891ca6
Exists in
master
and in
1 other branch
Dealing with broken problem counters. fixes #151.
Showing
2 changed files
with
8 additions
and
1 deletions
Show diff stats
app/models/problem.rb
... | ... | @@ -158,7 +158,7 @@ class Problem |
158 | 158 | |
159 | 159 | def attribute_count_descrease(name, value) |
160 | 160 | counter, index = send(name), attribute_index(value) |
161 | - if counter[index]['count'] > 1 | |
161 | + if counter[index] && counter[index]['count'] > 1 | |
162 | 162 | counter[index]['count'] -= 1 |
163 | 163 | else |
164 | 164 | counter.delete(index) | ... | ... |
spec/models/problem_spec.rb
... | ... | @@ -248,6 +248,13 @@ describe Problem do |
248 | 248 | @problem.reload |
249 | 249 | }.should change(@problem, :messages).from({Digest::MD5.hexdigest('ERR 1') => {'value' => 'ERR 1', 'count' => 1}}).to({}) |
250 | 250 | end |
251 | + | |
252 | + it "removing a notice from the problem with broken counter should not raise an error" do | |
253 | + notice1 = Fabricate(:notice, :err => @err, :message => 'ERR 1') | |
254 | + @problem.messages = {} | |
255 | + @problem.save! | |
256 | + expect {@err.notices.first.destroy}.not_to raise_error | |
257 | + end | |
251 | 258 | end |
252 | 259 | |
253 | 260 | context "notice hosts cache" do | ... | ... |