Commit 0ab40a693b73db02686fa0f96b2ffa1c4d611192
1 parent
ad298154
Exists in
master
and in
1 other branch
Add resolved/unresolved scopes on Err
Showing
2 changed files
with
25 additions
and
2 deletions
Show diff stats
app/models/err.rb
@@ -7,16 +7,19 @@ class Err | @@ -7,16 +7,19 @@ class Err | ||
7 | field :component | 7 | field :component |
8 | field :action | 8 | field :action |
9 | field :environment | 9 | field :environment |
10 | - field :resolved, :type => Boolean | 10 | + field :resolved, :type => Boolean, :default => false |
11 | 11 | ||
12 | referenced_in :project | 12 | referenced_in :project |
13 | embeds_many :notices | 13 | embeds_many :notices |
14 | 14 | ||
15 | validates_presence_of :klass, :environment | 15 | validates_presence_of :klass, :environment |
16 | 16 | ||
17 | + scope :resolved, where(:resolved => true) | ||
18 | + scope :unresolved, where(:resolved => false) | ||
19 | + | ||
17 | def self.for(attrs) | 20 | def self.for(attrs) |
18 | project = attrs.delete(:project) | 21 | project = attrs.delete(:project) |
19 | - project.errs.where(attrs).first || project.errs.create(attrs) | 22 | + project.errs.unresolved.where(attrs).first || project.errs.create(attrs) |
20 | end | 23 | end |
21 | 24 | ||
22 | def resolve! | 25 | def resolve! |
spec/models/err_spec.rb
@@ -74,4 +74,24 @@ describe Err do | @@ -74,4 +74,24 @@ describe Err do | ||
74 | end | 74 | end |
75 | end | 75 | end |
76 | 76 | ||
77 | + context "Scopes" do | ||
78 | + context "resolved" do | ||
79 | + it 'only finds resolved Errors' do | ||
80 | + resolved = Factory(:err, :resolved => true) | ||
81 | + unresolved = Factory(:err, :resolved => false) | ||
82 | + Err.resolved.all.should include(resolved) | ||
83 | + Err.resolved.all.should_not include(unresolved) | ||
84 | + end | ||
85 | + end | ||
86 | + | ||
87 | + context "unresolved" do | ||
88 | + it 'only finds unresolved Errors' do | ||
89 | + resolved = Factory(:err, :resolved => true) | ||
90 | + unresolved = Factory(:err, :resolved => false) | ||
91 | + Err.unresolved.all.should_not include(resolved) | ||
92 | + Err.unresolved.all.should include(unresolved) | ||
93 | + end | ||
94 | + end | ||
95 | + end | ||
96 | + | ||
77 | end | 97 | end |
78 | \ No newline at end of file | 98 | \ No newline at end of file |