We get rid of database cleaner, and JavaScript tests are faster because between tests we now rollback transactions instead of truncating the database.
119 lines
3.0 KiB
Ruby
119 lines
3.0 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Welcome screen" do
|
|
let(:budget) { create(:budget) }
|
|
|
|
it_behaves_like "remotely_translatable",
|
|
:proposal,
|
|
"root_path",
|
|
{}
|
|
|
|
it_behaves_like "remotely_translatable",
|
|
:debate,
|
|
"root_path",
|
|
{}
|
|
|
|
it_behaves_like "remotely_translatable",
|
|
:legislation_process,
|
|
"root_path",
|
|
{}
|
|
|
|
scenario "requires a logged in user" do
|
|
visit welcome_path
|
|
expect(page).to have_content "You must sign in or register to continue."
|
|
end
|
|
|
|
scenario "for a not verified user" do
|
|
user = create(:user)
|
|
login_through_form_as(user)
|
|
|
|
expect(page).to have_current_path(page_path("welcome_not_verified"))
|
|
end
|
|
|
|
scenario "for a level two verified user" do
|
|
user = create(:user, :level_two)
|
|
login_as(user)
|
|
|
|
visit welcome_path
|
|
expect(page).to have_current_path(page_path("welcome_level_two_verified"))
|
|
end
|
|
|
|
scenario "for a level three verified user" do
|
|
user = create(:user, :level_three)
|
|
login_as(user)
|
|
|
|
visit welcome_path
|
|
expect(page).to have_current_path(page_path("welcome_level_three_verified"))
|
|
end
|
|
|
|
scenario "a regular user does not see it when coing to /email" do
|
|
plain, encrypted = Devise.token_generator.generate(User, :email_verification_token)
|
|
|
|
user = create(:user, email_verification_token: plain)
|
|
|
|
visit email_path(email_verification_token: encrypted)
|
|
|
|
fill_in "user_login", with: user.email
|
|
fill_in "user_password", with: user.password
|
|
|
|
click_button "Enter"
|
|
|
|
expect(page).to have_content("You are a verified user")
|
|
|
|
expect(page).to have_current_path(account_path)
|
|
end
|
|
|
|
scenario "it is not shown more than once" do
|
|
user = create(:user, sign_in_count: 2)
|
|
|
|
login_through_form_as(user)
|
|
|
|
expect(page).to have_current_path(root_path)
|
|
end
|
|
|
|
scenario "is not shown to organizations" do
|
|
organization = create(:organization)
|
|
|
|
login_through_form_as(organization.user)
|
|
|
|
expect(page).to have_current_path(root_path)
|
|
end
|
|
|
|
scenario "it is not shown to level-2 users" do
|
|
user = create(:user, residence_verified_at: Time.current, confirmed_phone: "123")
|
|
|
|
login_through_form_as(user)
|
|
|
|
expect(page).to have_current_path(root_path)
|
|
end
|
|
|
|
scenario "it is not shown to level-3 users" do
|
|
user = create(:user, verified_at: Time.current)
|
|
|
|
login_through_form_as(user)
|
|
|
|
expect(page).to have_current_path(root_path)
|
|
end
|
|
|
|
scenario "is not shown to administrators" do
|
|
administrator = create(:administrator)
|
|
|
|
login_through_form_as(administrator.user)
|
|
|
|
expect(page).to have_current_path(root_path)
|
|
end
|
|
|
|
scenario "a regular users sees it the first time he logs in, with all options active
|
|
if the setting skip_verification is activated" do
|
|
Setting["feature.user.skip_verification"] = "true"
|
|
|
|
user = create(:user)
|
|
|
|
login_through_form_as(user)
|
|
|
|
4.times do |i|
|
|
expect(page).to have_css "li:nth-child(#{i + 1})"
|
|
end
|
|
end
|
|
end
|