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 |