discourse/spec/system/user_page/user_preferences_profile_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

53 lines
1.5 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
describe "User preferences | Profile", type: :system do
fab!(:user) { Fabricate(:user, active: true) }
let(:user_preferences_profile_page) { PageObjects::Pages::UserPreferencesProfile.new }
let(:user_preferences_page) { PageObjects::Pages::UserPreferences.new }
before { sign_in(user) }
describe "enforcing required fields" do
before do
UserRequiredFieldsVersion.create!
UserField.create!(
field_type: "text",
name: "Favourite Pokemon",
description: "Hint: It's Mudkip.",
requirement: :for_all_users,
editable: true,
)
end
it "redirects to the profile page to fill up required fields" do
visit("/")
expect(page).to have_current_path("/u/#{user.username}/preferences/profile")
expect(page).to have_selector(
".alert-error",
text: I18n.t("js.user.preferences.profile.enforced_required_fields"),
)
end
it "disables client-side routing while missing required fields" do
user_preferences_profile_page.visit(user)
find("#site-logo").click
expect(page).to have_current_path("/u/#{user.username}/preferences/profile")
end
it "allows user to fill up required fields" do
user_preferences_profile_page.visit(user)
find(".user-field-favourite-pokemon input").fill_in(with: "Mudkip")
find(".save-button .btn-primary").click
visit("/")
expect(page).to have_current_path("/")
end
end
end