mirror of
https://github.com/discourse/discourse.git
synced 2026-08-06 13:08:40 +08:00
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.
30 lines
1.2 KiB
Ruby
Vendored
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
|