From 01df0bdaa6de372779275d3f6daf78207cf46266 Mon Sep 17 00:00:00 2001 From: slhx agent Date: Mon, 25 May 2026 23:10:19 +0200 Subject: [PATCH] test(js): cover multipart request shape Cover multipart runtime request construction so file-upload forms keep FormData, omit File values from URL encoding, and only mark URLSearchParams bodies as urlencoded. req: multipart/003 --- slhx-js/tests/runtime.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/slhx-js/tests/runtime.rs b/slhx-js/tests/runtime.rs index 06ba537..a382c02 100644 --- a/slhx-js/tests/runtime.rs +++ b/slhx-js/tests/runtime.rs @@ -9,6 +9,17 @@ fn runtime_posts_urlencoded_forms_by_default() { assert!(source.contains("application/x-www-form-urlencoded;charset=UTF-8")); } +#[test] +fn runtime_preserves_multipart_file_upload_fallback_shape() { + // req: multipart/003 + let source = slhx_js::RUNTIME_JS; + + assert!(source.contains("multipart: form && String(form.enctype).toLowerCase() === \"multipart/form-data\"")); + assert!(source.contains("if (value instanceof File) continue")); + assert!(source.contains("return multipart ? data : urlEncoded(data)")); + assert!(source.contains("if (body instanceof URLSearchParams) headers[\"Content-Type\"] = \"application/x-www-form-urlencoded;charset=UTF-8\"")); +} + #[test] fn runtime_interval_dispatch_avoids_duplicate_timers() { // req: convention/005