diff --git a/lib/overrides/mongoid/relations/builder.rb b/lib/overrides/mongoid/relations/builder.rb index ad3ba93..8800c79 100644 --- a/lib/overrides/mongoid/relations/builder.rb +++ b/lib/overrides/mongoid/relations/builder.rb @@ -1,3 +1,7 @@ +# ruby-fogbugz requires crack. crack adds the attributes method to strings, +# thus breaking the relations of Mongoid. +# Tests reside in a separate fork of mongoid: +# https://github.com/mhs/mongoid/commit/e5b2b1346c73a2935c606317314b6ded07260429#diff-1 module Mongoid module Relations class Builder diff --git a/spec/controllers/apps_controller_spec.rb b/spec/controllers/apps_controller_spec.rb index e34608e..b076670 100644 --- a/spec/controllers/apps_controller_spec.rb +++ b/spec/controllers/apps_controller_spec.rb @@ -74,6 +74,71 @@ describe AppsController do assigns(:errs).size.should == 10 end end + + context 'with resolved errors' do + before(:each) do + resolved_err = Factory.create(:err, app: @app, resolved: true) + Factory.create(:notice, err: resolved_err) + end + + context 'and no params' do + it 'shows only unresolved errs' do + get :show, id: @app.id + assigns(:errs).size.should == 1 + end + end + + context 'and all_errs=true params' do + it 'shows all errors' do + get :show, id: @app.id, all_errs: true + assigns(:errs).size.should == 2 + end + end + end + + context 'with environment filters' do + before(:each) do + environments = ['production', 'test', 'development', 'staging'] + 20.times do |i| + Factory.create(:err, app: @app, environment: environments[i % environments.length]) + end + end + + context 'no params' do + it 'shows errs for all environments' do + get :show, id: @app.id + assigns(:errs).size.should == 21 + end + end + + context 'environment production' do + it 'shows errs for just production' do + get :show, id: @app.id, environment: :production + assigns(:errs).size.should == 6 + end + end + + context 'environment staging' do + it 'shows errs for just staging' do + get :show, id: @app.id, environment: :staging + assigns(:errs).size.should == 5 + end + end + + context 'environment development' do + it 'shows errs for just development' do + get :show, id: @app.id, environment: :development + assigns(:errs).size.should == 5 + end + end + + context 'environment test' do + it 'shows errs for just test' do + get :show, id: @app.id, environment: :test + assigns(:errs).size.should == 5 + end + end + end end context 'logged in as a user' do diff --git a/spec/controllers/errs_controller_spec.rb b/spec/controllers/errs_controller_spec.rb index f2ca886..545c5ff 100644 --- a/spec/controllers/errs_controller_spec.rb +++ b/spec/controllers/errs_controller_spec.rb @@ -54,6 +54,50 @@ describe ErrsController do assigns(:errs).size.should == 10 end end + + context 'with environment filters' do + before(:each) do + environments = ['production', 'test', 'development', 'staging'] + 20.times do |i| + Factory.create(:err, environment: environments[i % environments.length]) + end + end + + context 'no params' do + it 'shows errs for all environments' do + get :index + assigns(:errs).size.should == 21 + end + end + + context 'environment production' do + it 'shows errs for just production' do + get :index, environment: :production + assigns(:errs).size.should == 6 + end + end + + context 'environment staging' do + it 'shows errs for just staging' do + get :index, environment: :staging + assigns(:errs).size.should == 5 + end + end + + context 'environment development' do + it 'shows errs for just development' do + get :index, environment: :development + assigns(:errs).size.should == 5 + end + end + + context 'environment test' do + it 'shows errs for just test' do + get :index, environment: :test + assigns(:errs).size.should == 5 + end + end + end end context 'when logged in as a user' do -- libgit2 0.21.2