Files
nairobi/spec/features/welcome_spec.rb
Javi Martín db97f9d08c Add and apply rubocop rules for empty lines
We were very inconsistent regarding these rules.

Personally I prefer no empty lines around blocks, clases, etc... as
recommended by the Ruby style guide [1], and they're the default values
in rubocop, so those are the settings I'm applying.

The exception is the `private` access modifier, since we were leaving
empty lines around it most of the time. That's the default rubocop rule
as well. Personally I don't have a strong preference about this one.


[1] https://rubystyle.guide/#empty-lines-around-bodies
2019-10-24 17:11:47 +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