10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'app/lib/practical/test/helpers/system/assertions.rb', line 10
def assert_sign_in_user(user:)
create_passkey_for_user_and_return_webauthn_credential(
user: user
)
if Capybara.current_driver == :rack_test
page.driver.browser.post(new_user_session_challenge_url, as: :json)
challenge_data = JSON.parse(page.driver.response.body)
end
visit new_user_session_url
fill_in "Email", with: user.email
if Capybara.current_driver == :rack_test
credential_data = user_webauthn_client.get(challenge: challenge_data["challenge"], user_verified: true)
find("input[type=hidden]#user_passkey_credential", visible: false).set(JSON.generate(credential_data))
end
click_on "Sign in"
assert_toast_message(text: I18n.translate("devise.sessions.signed_in"))
end
|