errs_controller_spec.rb
2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
require 'spec_helper'
describe ErrsController do
let(:app) { Factory(:app) }
let(:err) { Factory(:err, :app => app) }
describe "GET /errs" do
it "gets a paginated list of unresolved errors" do
errors = WillPaginate::Collection.new(1,30)
3.times { errors << Factory(:err) }
Err.should_receive(:unresolved).and_return(
mock('proxy', :ordered => mock('proxy', :paginate => errors))
)
get :index
assigns(:errs).should == errors
end
end
describe "GET /errs/all" do
it "gets a paginated list of all errors" do
errors = WillPaginate::Collection.new(1,30)
3.times { errors << Factory(:err) }
3.times { errors << Factory(:err, :resolved => true)}
Err.should_receive(:ordered).and_return(
mock('proxy', :paginate => errors)
)
get :index
assigns(:errs).should == errors
end
end
describe "GET /apps/:app_id/errs/:id" do
before do
3.times { Factory(:notice, :err => err)}
end
it "finds the app" do
get :show, :app_id => app.id, :id => err.id
assigns(:app).should == app
end
it "finds the err" do
get :show, :app_id => app.id, :id => err.id
assigns(:err).should == err
end
it "paginates the notices, 1 at a time" do
App.stub(:find).with(app.id).and_return(app)
app.errs.stub(:find).with(err.id).and_return(err)
err.notices.should_receive(:ordered).and_return(proxy = stub('proxy'))
proxy.should_receive(:paginate).with(:page => 3, :per_page => 1).
and_return(WillPaginate::Collection.new(1,1) << err.notices.first)
get :show, :app_id => app.id, :id => err.id
end
end
describe "PUT /apps/:app_id/errs/:id/resolve" do
before do
@err = Factory(:err)
App.stub(:find).with(@err.app.id).and_return(@err.app)
@err.app.errs.stub(:unresolved).
and_return(stub('proxy', :find => @err))
@err.stub(:resolve!)
end
it 'finds the app and the err' do
App.should_receive(:find).with(@err.app.id).and_return(@err.app)
@err.app.errs.should_receive(:unresolved).
and_return(mock('proxy', :find => @err))
put :resolve, :app_id => @err.app.id, :id => @err.id
assigns(:app).should == @err.app
assigns(:err).should == @err
end
it "should resolve the issue" do
@err.should_receive(:resolve!).and_return(true)
put :resolve, :app_id => @err.app.id, :id => @err.id
end
it "should display a message" do
put :resolve, :app_id => @err.app.id, :id => @err.id
request.flash[:success].should match(/Great news/)
end
it "should redirect do the errs page" do
put :resolve, :app_id => @err.app.id, :id => @err.id
response.should redirect_to(errs_path)
end
end
end