-
Notifications
You must be signed in to change notification settings - Fork 1
/
pages_controller_spec.rb
94 lines (79 loc) · 2.45 KB
/
pages_controller_spec.rb
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
93
94
require 'spec_helper'
describe PagesController do
it "should display the front page" do
get :front
response.should render_template(:front)
end
describe "when going to overview page" do
it "should just show whatever it is" do
get :overview
response.should render_template(:overview)
end
it "should switch to digital" do
get :overview, :voting_type => "digital"
response.should render_template(:overview)
@controller.voting_type.should == "digital"
end
it "should switch to physical" do
get :overview, :voting_type => "physical"
response.should render_template(:overview)
@controller.voting_type.should == "physical"
end
end
describe "when checking in" do
it "should display form" do
get :check_in
response.should render_template(:check_in)
end
it "should return to the check in form if record wasn't found" do
post :check_in, :registration => { :pin => "unknown" }
response.should render_template(:check_in)
assigns(:registration).should be_nil
end
it "should move on to the confirm page when record was found" do
r = Factory(:registration, :pin => "1234")
post :check_in, :registration => { :pin => "1234", :name => r.name, :zip => r.zip, :voter_id => r.voter_id }
response.should redirect_to(confirm_url)
end
end
describe "when confirming" do
it "should render the page" do
stub_registration
get :confirm
response.should render_template(:confirm)
end
end
describe "when completing" do
it "should render the page" do
stub_registration
get :complete
response.should render_template(:complete)
end
end
describe "when sending ballot" do
before do
stub_registration
end
it "should return to the same form if ballot is invalid and can't be saved" do
@controller.stubs(:save_ballot).returns(false)
post :return
response.should render_template(:return)
end
it "should render the thanks page if all is good" do
@controller.stubs(:save_ballot).returns(true)
post :return
response.should redirect_to(thanks_path)
end
end
describe "when viewing thanks" do
it "should render the page" do
stub_registration
get :thanks
response.should render_template(:thanks)
end
end
def stub_registration
@r = Factory(:registration)
session[:rid] = @r.id
end
end