diff --git a/app/assets/javascripts/discourse/app/components/search-menu/results/initial-options.js b/app/assets/javascripts/discourse/app/components/search-menu/results/initial-options.js index 44cfbc60f89..c06f1ede36d 100644 --- a/app/assets/javascripts/discourse/app/components/search-menu/results/initial-options.js +++ b/app/assets/javascripts/discourse/app/components/search-menu/results/initial-options.js @@ -135,6 +135,7 @@ export default class InitialOptions extends Component { } userContextType() { + this.contextTypeKeyword = "@"; this.slug = `@${this.search.searchContext.user.username}`; this.suffix = I18n.t("search.in_posts_by", { username: this.search.searchContext.user.username, diff --git a/spec/system/page_objects/pages/search.rb b/spec/system/page_objects/pages/search.rb index caba892aa23..6978eb0a935 100644 --- a/spec/system/page_objects/pages/search.rb +++ b/spec/system/page_objects/pages/search.rb @@ -38,6 +38,10 @@ module PageObjects find(".d-header #search-button").click end + def click_in_posts_by_user + find(".search-menu-container .search-menu-assistant-item").click + end + def click_first_topic find(".topic-list-body tr:first-of-type").click end @@ -68,6 +72,14 @@ module PageObjects page.has_selector?(".search-results .warning") end + def has_found_no_results? + page.has_css?(".search-menu-container .results .no-results") + end + + def search_term + page.find("#search-term").value + end + SEARCH_PAGE_SELECTOR = "body.search-page" def active? diff --git a/spec/system/user_page/user_page_search_spec.rb b/spec/system/user_page/user_page_search_spec.rb new file mode 100644 index 00000000000..a01dcb6258d --- /dev/null +++ b/spec/system/user_page/user_page_search_spec.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +describe "User page search", type: :system do + fab!(:user) + let(:search_page) { PageObjects::Pages::Search.new } + + it "filters down to the user" do + sign_in(user) + + visit("/u/#{user.username}") + search_page.click_search_icon + search_page.click_in_posts_by_user + + expect(search_page).to have_found_no_results + expect(search_page.search_term).to eq("@#{user.username}") + end +end