0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-06 13:08:40 +08:00
discourse/spec/system/user_page/hide_from_public_spec.rb
Jarek Radosz fe0d698bc9
DEV: Fix a hide_from_public_spec flake (#39801)
The first post has two valid paths: `/slug/id` and `/slug/id/1`. Latter
is automatically updated to former on the client side, but depending on
how quick CI is, it might have either path at the time of that
assertion.
2026-05-06 19:09:42 +02:00

30 lines
1.2 KiB
Ruby
Vendored

# frozen_string_literal: true
describe "hide_user_profiles_from_public" do
let(:user) { Fabricate(:user) }
before { SiteSetting.hide_user_profiles_from_public = true }
it "displays an error when navigating straight to a profile" do
visit("/u/#{user.username}")
expect(page).to have_css(".error-page .reason", text: I18n.t("js.errors.reasons.forbidden"))
expect(page).to have_css(".error-page .desc", text: I18n.t("js.user.login_to_view_profile"))
end
it "displays an error when navigating from an internal link" do
post =
Fabricate(
:post,
user: user,
raw: "Check out my profile at [#{user.username}](/u/#{user.username})",
)
visit(post.url)
find(".cooked a[href='/u/#{user.username}']").click
expect(page).to have_css(".error-page .reason", text: I18n.t("js.errors.reasons.forbidden"))
expect(page).to have_css(".error-page .desc", text: I18n.t("js.user.login_to_view_profile"))
expect(page).to have_current_path("/u/#{user.username}")
find(".error-page .buttons .btn-primary", text: "Back").click
expect(page).to have_current_path(post.url).or have_current_path(post.topic.relative_url)
end
end