Module: Practical::Test::Helpers::System::Assertions

Defined in:
app/lib/practical/test/helpers/system/assertions.rb

Instance Method Summary collapse

Instance Method Details

#assert_sign_in_user(user:) ⇒ Object



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 (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

#assert_toast_message(text:) ⇒ Object



4
5
6
7
8
# File 'app/lib/practical/test/helpers/system/assertions.rb', line 4

def assert_toast_message(text:)
  within(".notification-messages") do
    assert_selector("dialog", text: text)
  end
end