diff --git a/app/models/deploy.rb b/app/models/deploy.rb index d44c33c..9158db5 100644 --- a/app/models/deploy.rb +++ b/app/models/deploy.rb @@ -19,7 +19,7 @@ class Deploy end def resolve_app_errs - app.errs.unresolved.each {|err| err.resolve!} + app.errs.unresolved.in_env(environment).each {|err| err.resolve!} end protected diff --git a/app/models/err.rb b/app/models/err.rb index a26faa9..c481843 100644 --- a/app/models/err.rb +++ b/app/models/err.rb @@ -18,6 +18,7 @@ class Err scope :resolved, where(:resolved => true) scope :unresolved, where(:resolved => false) scope :ordered, order_by(:last_notice_at.desc) + scope :in_env, lambda {|env| where(:environment => env)} def self.for(attrs) app = attrs.delete(:app) diff --git a/spec/models/deploy_spec.rb b/spec/models/deploy_spec.rb index 223aa18..a82c14e 100644 --- a/spec/models/deploy_spec.rb +++ b/spec/models/deploy_spec.rb @@ -33,11 +33,13 @@ describe Deploy do end context 'when the app has resolve_errs_on_deploy set to true' do - it 'should not resolve the apps errs' do + it 'should resolve the apps errs that were in the same environment' do app = Factory(:app, :resolve_errs_on_deploy => true) - @errs = 3.times.inject([]) {|errs,_| errs << Factory(:err, :resolved => false, :app => app)} - Factory(:deploy, :app => app) - app.reload.errs.all?{|err| err.resolved?}.should == true + @prod_errs = 3.times.inject([]) {|errs,_| errs << Factory(:err, :resolved => false, :app => app, :environment => 'production')} + @staging_errs = 3.times.inject([]) {|errs,_| errs << Factory(:err, :resolved => false, :app => app, :environment => 'staging')} + Factory(:deploy, :app => app, :environment => 'production') + @prod_errs.all?{|err| err.reload.resolved?}.should == true + @staging_errs.all?{|err| err.reload.resolved?}.should == false end end end -- libgit2 0.21.2