Files
grecia/spec/system/welcome_spec.rb
Javi Martín 9427f01442 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.
2020-04-24 15:43:54 +02:00

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