From b8be941b9921c3e77e5fd003e248e63b909d0a41 Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Sun, 4 Oct 2026 20:06:53 -0400 Subject: [PATCH] Ask for JSON when autocompleting people to ping `as: "json"` is a @rails/request.js option; plain fetch ignores it and sends `Accept: */*`, so Autocompletable::UsersController answered with its HTML format and response.json() threw. The new ping form never showed any suggestions. Send an explicit Accept header instead. Co-Authored-By: Claude Opus 5.5 --- .../lib/autocomplete/base_autocomplete_handler.js | 2 +- test/system/starting_pings_test.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 test/system/starting_pings_test.rb diff --git a/app/javascript/lib/autocomplete/base_autocomplete_handler.js b/app/javascript/lib/autocomplete/base_autocomplete_handler.js index 28b7fd0..9f1f352 100644 --- a/app/javascript/lib/autocomplete/base_autocomplete_handler.js +++ b/app/javascript/lib/autocomplete/base_autocomplete_handler.js @@ -120,7 +120,7 @@ export default class BaseAutocompleteHandler { #fetchAutocompletables(url) { if (url) { - return fetch(url, { as: "json" }).then(response => response.json()) + return fetch(url, { headers: { Accept: "application/json" } }).then(response => response.json()) } else { return Promise.resolve() } diff --git a/test/system/starting_pings_test.rb b/test/system/starting_pings_test.rb new file mode 100644 index 0000000..ddb5b4f --- /dev/null +++ b/test/system/starting_pings_test.rb @@ -0,0 +1,15 @@ +require "application_system_test_case" + +class StartingPingsTest < ApplicationSystemTestCase + setup do + sign_in "kevin@37signals.com" + end + + test "suggesting people to ping" do + visit new_rooms_direct_url + + find("[data-autocomplete-target='input']").send_keys("Jas") + + assert_selector "suggestion-option[role='option']", text: "Jason" + end +end