Commit ef27f84e5998712996e69c3cc39eec4b76febb4f
1 parent
4d9bc87e
Exists in
master
and in
1 other branch
Handle errs without notices. Userful for testing custom clients and different tests.
Showing
6 changed files
with
48 additions
and
33 deletions
Show diff stats
app/models/err.rb
app/views/errs/_table.html.haml
| ... | ... | @@ -15,11 +15,11 @@ |
| 15 | 15 | %td.message |
| 16 | 16 | = link_to err.message, app_err_path(err.app, err) |
| 17 | 17 | %em= err.where |
| 18 | - %td.latest #{time_ago_in_words(err.last_notice_at)} ago | |
| 18 | + %td.latest #{time_ago_in_words(last_notice_at err)} ago | |
| 19 | 19 | %td.deploy= err.app.last_deploy_at ? err.app.last_deploy_at.to_s(:micro) : 'n/a' |
| 20 | 20 | %td.count= link_to err.notices.count, app_err_path(err.app, err) |
| 21 | 21 | - if errs.none? |
| 22 | 22 | %tr |
| 23 | 23 | %td{:colspan => (@app ? 5 : 6)} |
| 24 | 24 | %em No errs here |
| 25 | -= will_paginate @errs, :previous_label => '« Previous', :next_label => 'Next »' | |
| 26 | 25 | \ No newline at end of file |
| 26 | += will_paginate @errs, :previous_label => '« Previous', :next_label => 'Next »' | ... | ... |
app/views/errs/show.html.haml
| ... | ... | @@ -6,11 +6,11 @@ |
| 6 | 6 | %strong Environment: |
| 7 | 7 | = @err.environment |
| 8 | 8 | %strong Last Notice: |
| 9 | - = @err.last_notice_at.to_s(:micro) | |
| 9 | + = last_notice_at(@err).to_s(:micro) | |
| 10 | 10 | - content_for :action_bar do |
| 11 | 11 | %span= link_to 'resolve', resolve_app_err_path(@app, @err), :method => :put, :confirm => 'Seriously?', :class => 'resolve' if @err.unresolved? |
| 12 | 12 | |
| 13 | -%h4= @notice.message | |
| 13 | +%h4= @notice.try(:message) | |
| 14 | 14 | |
| 15 | 15 | = will_paginate @notices, :param_name => :notice, :page_links => false, :class => 'notice-pagination' |
| 16 | 16 | viewing occurrence #{@notices.current_page} of #{@notices.total_pages} |
| ... | ... | @@ -23,22 +23,23 @@ viewing occurrence #{@notices.current_page} of #{@notices.total_pages} |
| 23 | 23 | %li= link_to 'Parameters', '#params', :rel => 'params', :class => 'button' |
| 24 | 24 | %li= link_to 'Session', '#session', :rel => 'session', :class => 'button' |
| 25 | 25 | |
| 26 | -#summary | |
| 27 | - %h3 Summary | |
| 28 | - = render 'notices/summary', :notice => @notice | |
| 29 | - | |
| 30 | -#backtrace | |
| 31 | - %h3 Backtrace | |
| 32 | - = render 'notices/backtrace', :lines => @notice.backtrace | |
| 26 | +- if @notice | |
| 27 | + #summary | |
| 28 | + %h3 Summary | |
| 29 | + = render 'notices/summary', :notice => @notice | |
| 33 | 30 | |
| 34 | -#environment | |
| 35 | - %h3 Environment | |
| 36 | - = render 'notices/environment', :notice => @notice | |
| 37 | - | |
| 38 | -#params | |
| 39 | - %h3 Parameters | |
| 40 | - = render 'notices/params', :notice => @notice | |
| 41 | - | |
| 42 | -#session | |
| 43 | - %h3 Session | |
| 44 | - = render 'notices/session', :notice => @notice | |
| 45 | 31 | \ No newline at end of file |
| 32 | + #backtrace | |
| 33 | + %h3 Backtrace | |
| 34 | + = render 'notices/backtrace', :lines => @notice.backtrace | |
| 35 | + | |
| 36 | + #environment | |
| 37 | + %h3 Environment | |
| 38 | + = render 'notices/environment', :notice => @notice | |
| 39 | + | |
| 40 | + #params | |
| 41 | + %h3 Parameters | |
| 42 | + = render 'notices/params', :notice => @notice | |
| 43 | + | |
| 44 | + #session | |
| 45 | + %h3 Session | |
| 46 | + = render 'notices/session', :notice => @notice | ... | ... |
spec/controllers/apps_controller_spec.rb
| ... | ... | @@ -32,12 +32,21 @@ describe AppsController do |
| 32 | 32 | end |
| 33 | 33 | |
| 34 | 34 | describe "GET /apps/:id" do |
| 35 | + render_views | |
| 35 | 36 | context 'logged in as an admin' do |
| 36 | - it 'finds the app' do | |
| 37 | + before(:each) do | |
| 37 | 38 | sign_in Factory(:admin) |
| 38 | - app = Factory(:app) | |
| 39 | - get :show, :id => app.id | |
| 40 | - assigns(:app).should == app | |
| 39 | + @app = Factory(:app) | |
| 40 | + end | |
| 41 | + | |
| 42 | + it 'finds the app' do | |
| 43 | + get :show, :id => @app.id | |
| 44 | + assigns(:app).should == @app | |
| 45 | + end | |
| 46 | + | |
| 47 | + it "should not raise errors for app with err without notices" do | |
| 48 | + Factory :err, :app => @app | |
| 49 | + lambda { get :show, :id => @app.id }.should_not raise_error | |
| 41 | 50 | end |
| 42 | 51 | end |
| 43 | 52 | ... | ... |
spec/controllers/errs_controller_spec.rb
| ... | ... | @@ -74,6 +74,8 @@ describe ErrsController do |
| 74 | 74 | end |
| 75 | 75 | |
| 76 | 76 | describe "GET /apps/:app_id/errs/:id" do |
| 77 | + render_views | |
| 78 | + | |
| 77 | 79 | before do |
| 78 | 80 | 3.times { Factory(:notice, :err => err)} |
| 79 | 81 | end |
| ... | ... | @@ -93,13 +95,9 @@ describe ErrsController do |
| 93 | 95 | assigns(:err).should == err |
| 94 | 96 | end |
| 95 | 97 | |
| 96 | - it "paginates the notices, 1 at a time" do | |
| 97 | - App.stub(:find).with(app.id).and_return(app) | |
| 98 | - app.errs.stub(:find).with(err.id).and_return(err) | |
| 99 | - err.notices.should_receive(:ordered).and_return(proxy = stub('proxy')) | |
| 100 | - proxy.should_receive(:paginate).with(:page => 3, :per_page => 1). | |
| 101 | - and_return(WillPaginate::Collection.new(1,1) << err.notices.first) | |
| 98 | + it "successfully render page" do | |
| 102 | 99 | get :show, :app_id => app.id, :id => err.id |
| 100 | + response.should be_success | |
| 103 | 101 | end |
| 104 | 102 | end |
| 105 | 103 | ... | ... |