Fix export polling missing template error (#796) (#721)

The polling controller was requesting turbo_stream format but only an
HTML template exists. Fix the Accept header to request text/html and
handle both formats in the controller.
This commit is contained in:
Dream
2026-02-25 17:09:51 -05:00
committed by GitHub
parent 7e912c1c93
commit 91b79053fd
3 changed files with 17 additions and 2 deletions

View File

@@ -26,7 +26,11 @@ class FamilyExportsController < ApplicationController
[ t("breadcrumbs.home"), root_path ],
[ t("breadcrumbs.exports"), family_exports_path ]
]
render layout: "settings"
respond_to do |format|
format.html { render layout: "settings" }
format.turbo_stream { redirect_to family_exports_path }
end
end
def download

View File

@@ -35,7 +35,7 @@ export default class extends Controller {
try {
const response = await fetch(this.urlValue, {
headers: {
Accept: "text/vnd.turbo-stream.html",
Accept: "text/html",
"Turbo-Frame": this.element.id,
},
});

View File

@@ -140,6 +140,17 @@ class FamilyExportsControllerTest < ActionDispatch::IntegrationTest
assert_not ActiveStorage::Attachment.exists?(file_id)
end
test "index responds to html with settings layout" do
get family_exports_path
assert_response :success
assert_select "title" # rendered with layout
end
test "index responds to turbo_stream without raising MissingTemplate" do
get family_exports_path, headers: { "Accept" => "text/vnd.turbo-stream.html" }
assert_redirected_to family_exports_path
end
test "non-admin cannot delete export" do
export = @family.family_exports.create!(status: "completed")
sign_in @non_admin