Skip to content

Commit 6f33e1d

Browse files
Fyst 2318 contact information disappears upon entry (#225)
* and a session ender --------- Co-authored-by: Drew Proebstel <dproebstel@codeforamerica.org>
1 parent d924892 commit 6f33e1d

5 files changed

Lines changed: 80 additions & 1 deletion

File tree

app/controllers/base_controller.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ def create_and_login_state_file_archived_intake(phone_number: nil, email_address
2828
sign_in intake
2929
end
3030

31+
def logout_clear_session
32+
sign_out(:state_file_archived_intake) if respond_to?(:sign_out)
33+
34+
session[:ssn_verified] = false
35+
session[:mailing_verified] = false
36+
session[:code_verified] = false
37+
end
38+
3139
def is_intake_unavailable
3240
if current_state_file_archived_intake.nil?
3341
redirect_to knock_out_path

app/controllers/email_address_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
class EmailAddressController < BaseController
22
def edit
3+
logout_clear_session
34
@form = EmailAddressForm.new
45
end
56

app/controllers/phone_number_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
class PhoneNumberController < BaseController
22
def edit
3+
logout_clear_session
34
@form = PhoneNumberForm.new
45
end
56

spec/controllers/email_address_controller_spec.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,41 @@
99
end
1010

1111
describe "GET #edit" do
12+
it "signs out any existing state_file_archived_intake and resets verification flags" do
13+
intake = create(:state_file_archived_intake)
14+
sign_in intake
15+
16+
session[:ssn_verified] = true
17+
session[:mailing_verified] = true
18+
session[:code_verified] = true
19+
20+
get :edit
21+
22+
expect(controller.current_state_file_archived_intake).to be_nil
23+
24+
expect(session[:ssn_verified]).to eq(false)
25+
expect(session[:mailing_verified]).to eq(false)
26+
expect(session[:code_verified]).to eq(false)
27+
28+
expect(assigns(:form)).to be_a(EmailAddressForm)
29+
expect(response).to render_template(:edit)
30+
end
31+
32+
it "initializes a new EmailAddressForm and sets verification flags to false when no one is signed in" do
33+
session[:ssn_verified] = true
34+
session[:mailing_verified] = nil
35+
session[:code_verified] = true
36+
37+
get :edit
38+
39+
expect(assigns(:form)).to be_a(EmailAddressForm)
40+
expect(response).to render_template(:edit)
41+
42+
expect(session[:ssn_verified]).to eq(false)
43+
expect(session[:mailing_verified]).to eq(false)
44+
expect(session[:code_verified]).to eq(false)
45+
end
46+
1247
it "renders the edit template with a new EmailAddressForm" do
1348
get :edit
1449

spec/controllers/phone_number_controller_spec.rb

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,47 @@
11
require "rails_helper"
22

33
RSpec.describe PhoneNumberController, type: :controller do
4+
include Devise::Test::ControllerHelpers
5+
6+
before do
7+
request.env["devise.mapping"] = Devise.mappings[:state_file_archived_intake]
8+
end
9+
410
describe "GET #edit" do
5-
it "renders the edit template with a new PhoneNumberForm" do
11+
it "signs out any existing state_file_archived_intake and resets verification flags" do
12+
intake = create(:state_file_archived_intake)
13+
sign_in intake
14+
15+
session[:ssn_verified] = true
16+
session[:mailing_verified] = true
17+
session[:code_verified] = true
18+
619
get :edit
720

21+
expect(controller.current_state_file_archived_intake).to be_nil
22+
23+
expect(session[:ssn_verified]).to eq(false)
24+
expect(session[:mailing_verified]).to eq(false)
25+
expect(session[:code_verified]).to eq(false)
26+
827
expect(assigns(:form)).to be_a(PhoneNumberForm)
928
expect(response).to render_template(:edit)
1029
end
30+
31+
it "initializes a new PhoneNumberForm and sets verification flags to false when no one is signed in" do
32+
session[:ssn_verified] = true
33+
session[:mailing_verified] = nil
34+
session[:code_verified] = true
35+
36+
get :edit
37+
38+
expect(assigns(:form)).to be_a(PhoneNumberForm)
39+
expect(response).to render_template(:edit)
40+
41+
expect(session[:ssn_verified]).to eq(false)
42+
expect(session[:mailing_verified]).to eq(false)
43+
expect(session[:code_verified]).to eq(false)
44+
end
1145
end
1246

1347
describe "POST #update" do

0 commit comments

Comments
 (0)