From ab6635eee03dfb1eb2b3209163fd24f5020ce017 Mon Sep 17 00:00:00 2001 From: william Date: Mon, 7 Sep 2026 22:24:47 +0200 Subject: [PATCH] =?UTF-8?q?Corrige=20l'action=20"Modifier=20une=20variable?= =?UTF-8?q?"=20sans=20effet=20en=20aper=C3=A7u=20cr=C3=A9ateur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit compute-operation.js/apply-actions.js n'étaient chargés que dans le paquet SCORM exporté (offline_mode) ; en aperçu créateur (/game//play), forgeApplyVariableActionOffline était donc absente et l'action ne modifiait rien. Charge les deux scripts inconditionnellement dans play.html. Co-Authored-By: Claude Sonnet 5 --- templates/play.html | 2 +- tests/test_collision_rules.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/templates/play.html b/templates/play.html index 17ddef1e..781f3cf1 100644 --- a/templates/play.html +++ b/templates/play.html @@ -163,9 +163,9 @@ -{% if offline_mode %} +{% if offline_mode %} diff --git a/tests/test_collision_rules.py b/tests/test_collision_rules.py index 4102dfb4..103164a7 100644 --- a/tests/test_collision_rules.py +++ b/tests/test_collision_rules.py @@ -357,3 +357,18 @@ def test_build_collision_rule_objects_excludes_the_player(client, tmp_game_slug_ ids = [o["id"] for o in rule_objects] assert enemy_id in ids assert player_id not in ids + + +def test_game_play_online_route_loads_the_scripts_that_apply_a_variable_action(client, tmp_game_slug_cleanup): + """Bug corrigé : compute-operation.js/apply-actions.js (qui portent + forgeApplyVariableActionOffline, appelée par collision-rules-controller.js + pour l'action "Modifier une variable") n'étaient chargés QUE derrière + `{% if offline_mode %}` dans templates/play.html — en aperçu créateur + (/game//play, jamais offline_mode), l'action ne faisait donc + RIEN (fonction absente). Les deux scripts doivent être chargés + inconditionnellement (voir aussi test_export_scorm.py, qui vérifie + qu'ils restent bien présents dans le paquet exporté).""" + slug, _ = _create_jeu2d_game(client, tmp_game_slug_cleanup) + html = client.get(f"/game/{slug}/play").data.decode() + assert 'src="/static/js/play/offline/compute-operation.js"' in html + assert 'src="/static/js/play/offline/apply-actions.js"' in html