Load filter-bar e2e pages with htmx + module scripts

The onSwap migration turned filter_bar.js, range_slider.js, and
search_select.js into ES modules that register via htmx.onLoad. The five
filter synthetic e2e pages still loaded them as classic `<script defer>`
with no htmx present, so the `import { onSwap }` line was a SyntaxError and
no widget ever initialized — 18 failing tests.

Load htmx.min.js first (classic) and the three widgets as `type="module"`,
mirroring how Page() serves them in the real app. date_range_picker.js
stays a classic defer script (it is an IIFE, not a module).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-13 14:33:39 +02:00
parent 2d3ae4e04f
commit 925cf007f4
5 changed files with 20 additions and 15 deletions
+4 -3
View File
@@ -21,9 +21,10 @@ def _bar_page(filter_json: str = "") -> str:
<html> <html>
<head> <head>
<title>Boolean filter E2E</title> <title>Boolean filter E2E</title>
<script src="/static/js/range_slider.js" defer></script> <script src="/static/js/htmx.min.js"></script>
<script src="/static/js/search_select.js" defer></script> <script src="/static/js/range_slider.js" type="module"></script>
<script src="/static/js/filter_bar.js" defer></script> <script src="/static/js/search_select.js" type="module"></script>
<script src="/static/js/filter_bar.js" type="module"></script>
</head> </head>
<body> <body>
{FilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")} {FilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")}
+4 -3
View File
@@ -29,9 +29,10 @@ def _bar_page(filter_json: str = "") -> str:
<html> <html>
<head> <head>
<title>Date filter E2E</title> <title>Date filter E2E</title>
<script src="/static/js/range_slider.js" defer></script> <script src="/static/js/htmx.min.js"></script>
<script src="/static/js/search_select.js" defer></script> <script src="/static/js/range_slider.js" type="module"></script>
<script src="/static/js/filter_bar.js" defer></script> <script src="/static/js/search_select.js" type="module"></script>
<script src="/static/js/filter_bar.js" type="module"></script>
</head> </head>
<body> <body>
{PurchaseFilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")} {PurchaseFilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")}
+4 -3
View File
@@ -28,10 +28,11 @@ def _bar_page(filter_json: str = "") -> str:
<html> <html>
<head> <head>
<title>Date range picker E2E</title> <title>Date range picker E2E</title>
<script src="/static/js/range_slider.js" defer></script> <script src="/static/js/htmx.min.js"></script>
<script src="/static/js/search_select.js" defer></script> <script src="/static/js/range_slider.js" type="module"></script>
<script src="/static/js/search_select.js" type="module"></script>
<script src="/static/js/date_range_picker.js" defer></script> <script src="/static/js/date_range_picker.js" defer></script>
<script src="/static/js/filter_bar.js" defer></script> <script src="/static/js/filter_bar.js" type="module"></script>
</head> </head>
<body> <body>
{PurchaseFilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")} {PurchaseFilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")}
+4 -3
View File
@@ -17,9 +17,10 @@ def _bar_page(filter_json: str = "") -> str:
<html> <html>
<head> <head>
<title>Range Slider E2E</title> <title>Range Slider E2E</title>
<script src="/static/js/range_slider.js" defer></script> <script src="/static/js/htmx.min.js"></script>
<script src="/static/js/search_select.js" defer></script> <script src="/static/js/range_slider.js" type="module"></script>
<script src="/static/js/filter_bar.js" defer></script> <script src="/static/js/search_select.js" type="module"></script>
<script src="/static/js/filter_bar.js" type="module"></script>
</head> </head>
<body> <body>
{FilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")} {FilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")}
+4 -3
View File
@@ -16,9 +16,10 @@ def _bar_page(filter_json: str = "") -> str:
<html> <html>
<head> <head>
<title>String filter E2E</title> <title>String filter E2E</title>
<script src="/static/js/range_slider.js" defer></script> <script src="/static/js/htmx.min.js"></script>
<script src="/static/js/search_select.js" defer></script> <script src="/static/js/range_slider.js" type="module"></script>
<script src="/static/js/filter_bar.js" defer></script> <script src="/static/js/search_select.js" type="module"></script>
<script src="/static/js/filter_bar.js" type="module"></script>
</head> </head>
<body> <body>
{PlatformFilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")} {PlatformFilterBar(filter_json=filter_json, preset_list_url="/p/l", preset_save_url="/p/s")}