Use system specs instead of feature specs
We get rid of database cleaner, and JavaScript tests are faster because between tests we now rollback transactions instead of truncating the database.
This commit is contained in:
100
spec/system/verification/verification_path_spec.rb
Normal file
100
spec/system/verification/verification_path_spec.rb
Normal file
@@ -0,0 +1,100 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe "Verification path" do
|
||||
scenario "User is an organization" do
|
||||
user = create(:user, verified_at: Time.current)
|
||||
create(:organization, user: user)
|
||||
|
||||
login_as(user)
|
||||
visit verification_path
|
||||
|
||||
expect(page).to have_current_path(account_path)
|
||||
end
|
||||
|
||||
scenario "User is verified" do
|
||||
user = create(:user, verified_at: Time.current)
|
||||
|
||||
login_as(user)
|
||||
visit verification_path
|
||||
|
||||
expect(page).to have_current_path(account_path)
|
||||
expect(page).to have_content "Your account is already verified"
|
||||
end
|
||||
|
||||
scenario "User requested a letter" do
|
||||
user = create(:user, confirmed_phone: "623456789", residence_verified_at: Time.current,
|
||||
letter_requested_at: Time.current, letter_verification_code: "666")
|
||||
|
||||
login_as(user)
|
||||
visit verification_path
|
||||
|
||||
expect(page).to have_current_path(edit_letter_path)
|
||||
end
|
||||
|
||||
scenario "User is level two verified" do
|
||||
user = create(:user, residence_verified_at: Time.current, confirmed_phone: "666666666")
|
||||
|
||||
login_as(user)
|
||||
visit verification_path
|
||||
|
||||
expect(page).to have_current_path(new_letter_path)
|
||||
end
|
||||
|
||||
scenario "User received a verification sms" do
|
||||
user = create(:user, residence_verified_at: Time.current, unconfirmed_phone: "666666666", sms_confirmation_code: "666")
|
||||
|
||||
login_as(user)
|
||||
visit verification_path
|
||||
|
||||
expect(page).to have_current_path(edit_sms_path)
|
||||
end
|
||||
|
||||
scenario "User received verification email" do
|
||||
user = create(:user, residence_verified_at: Time.current, email_verification_token: "1234")
|
||||
|
||||
login_as(user)
|
||||
visit verification_path
|
||||
|
||||
verification_redirect = current_path
|
||||
|
||||
visit verified_user_path
|
||||
|
||||
expect(page).to have_current_path(verification_redirect)
|
||||
end
|
||||
|
||||
scenario "User has verified residence" do
|
||||
user = create(:user, residence_verified_at: Time.current)
|
||||
|
||||
login_as(user)
|
||||
visit verification_path
|
||||
|
||||
verification_redirect = current_path
|
||||
|
||||
visit verified_user_path
|
||||
|
||||
expect(page).to have_current_path(verification_redirect)
|
||||
end
|
||||
|
||||
scenario "User has not started verification process" do
|
||||
user = create(:user)
|
||||
|
||||
login_as(user)
|
||||
visit verification_path
|
||||
|
||||
expect(page).to have_current_path(new_residence_path)
|
||||
end
|
||||
|
||||
scenario "A verified user can not access verification pages" do
|
||||
user = create(:user, verified_at: Time.current)
|
||||
|
||||
login_as(user)
|
||||
|
||||
verification_paths = [new_residence_path, verified_user_path, edit_sms_path, new_letter_path]
|
||||
verification_paths.each do |step_path|
|
||||
visit step_path
|
||||
|
||||
expect(page).to have_current_path(account_path)
|
||||
expect(page).to have_content "Your account is already verified"
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user