Skip to content

Commit aed05b9

Browse files
mfoclaude
andcommitted
test: add system spec for invite sign-in flow
Adds a dedicated system spec for the /users/sign_in_invite page and updates existing invite specs to expect the new redirect path. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 86497ff commit aed05b9

2 files changed

Lines changed: 50 additions & 2 deletions

File tree

spec/system/users/invite_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
page.reset_session!
4747
visit URI.parse(targeted_user_link_url(targeted_user_link)).request_uri
48-
expect(page).to have_current_path("/users/sign_in")
48+
expect(page).to have_current_path("/users/sign_in?context=invite")
4949
end
5050
end
5151

@@ -70,7 +70,7 @@
7070

7171
page.reset_session!
7272
visit URI.parse(targeted_user_link_url(targeted_user_link)).request_uri
73-
expect(page).to have_current_path("/users/sign_in")
73+
expect(page).to have_current_path("/users/sign_in?context=invite")
7474
end
7575
end
7676

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# frozen_string_literal: true
2+
3+
describe 'Invite sign-in page', js: true do
4+
let(:owner) { create(:user) }
5+
let(:procedure) { create(:simple_procedure) }
6+
let(:dossier) { create(:dossier, :with_individual, :en_construction, user: owner, procedure:) }
7+
let(:guest) { create(:user, password: SECURE_PASSWORD) }
8+
let(:invite) { create(:invite, dossier:, user: guest) }
9+
let!(:targeted_user_link) do
10+
create(:targeted_user_link, target_context: 'invite', target_model: invite, user: guest)
11+
end
12+
13+
before do
14+
allow(FranceConnectService).to receive(:enabled?).and_return(true)
15+
allow(ProConnectService).to receive(:enabled?).and_return(true)
16+
end
17+
18+
scenario 'unauthenticated guest sees all sign-in options' do
19+
visit targeted_user_link_path(targeted_user_link)
20+
21+
expect(page).to have_current_path("/users/sign_in?context=invite")
22+
expect(page).to have_content('Vous devez vous connecter ou créer un compte')
23+
expect(page).to have_content('FranceConnect')
24+
expect(page).to have_content('ProConnect')
25+
expect(page).to have_content('Se connecter avec son adresse électronique')
26+
expect(page).to have_link(I18n.t('views.shared.account.create', application_name: Current.application_name))
27+
end
28+
29+
scenario 'guest signs in with email and is redirected to dossier' do
30+
visit targeted_user_link_path(targeted_user_link)
31+
32+
within('#session-new') do
33+
fill_in :user_email, with: guest.email
34+
fill_in :user_password, with: SECURE_PASSWORD
35+
click_on 'Se connecter'
36+
end
37+
38+
expect(page).to have_current_path(dossier_path(dossier))
39+
end
40+
41+
scenario 'guest clicks create account link' do
42+
visit targeted_user_link_path(targeted_user_link)
43+
44+
click_on I18n.t('views.shared.account.create', application_name: Current.application_name)
45+
46+
expect(page).to have_current_path(new_user_registration_path)
47+
end
48+
end

0 commit comments

Comments
 (0)