Commit 7328898f3e99ff0199203f780334f3f3d1e62fef
1 parent
3052c8d7
Exists in
master
and in
1 other branch
Track resolved state on an error
Showing
2 changed files
with
24 additions
and
0 deletions
Show diff stats
app/models/error.rb
| @@ -7,6 +7,7 @@ class Error | @@ -7,6 +7,7 @@ class Error | ||
| 7 | field :component | 7 | field :component |
| 8 | field :action | 8 | field :action |
| 9 | field :environment | 9 | field :environment |
| 10 | + field :resolved, :type => Boolean | ||
| 10 | 11 | ||
| 11 | embeds_many :notices | 12 | embeds_many :notices |
| 12 | 13 | ||
| @@ -16,6 +17,14 @@ class Error | @@ -16,6 +17,14 @@ class Error | ||
| 16 | self.where(attrs).first || create(attrs) | 17 | self.where(attrs).first || create(attrs) |
| 17 | end | 18 | end |
| 18 | 19 | ||
| 20 | + def resolve! | ||
| 21 | + self.update_attributes(:resolved => true) | ||
| 22 | + end | ||
| 23 | + | ||
| 24 | + def unresolved? | ||
| 25 | + !resolved? | ||
| 26 | + end | ||
| 27 | + | ||
| 19 | def last_notice_at | 28 | def last_notice_at |
| 20 | notices.last.try(:created_at) | 29 | notices.last.try(:created_at) |
| 21 | end | 30 | end |
spec/models/error_spec.rb
| @@ -53,4 +53,19 @@ describe Error do | @@ -53,4 +53,19 @@ describe Error do | ||
| 53 | end | 53 | end |
| 54 | end | 54 | end |
| 55 | 55 | ||
| 56 | + context "#resolved?" do | ||
| 57 | + it "should start out as unresolved" do | ||
| 58 | + error = Error.new | ||
| 59 | + error.should_not be_resolved | ||
| 60 | + error.should be_unresolved | ||
| 61 | + end | ||
| 62 | + | ||
| 63 | + it "should be able to be resolved" do | ||
| 64 | + error = Factory(:error) | ||
| 65 | + error.should_not be_resolved | ||
| 66 | + error.resolve! | ||
| 67 | + error.reload.should be_resolved | ||
| 68 | + end | ||
| 69 | + end | ||
| 70 | + | ||
| 56 | end | 71 | end |
| 57 | \ No newline at end of file | 72 | \ No newline at end of file |