From 3aa6695c69d56efeb450ca7e80982ff772bf6bc7 Mon Sep 17 00:00:00 2001 From: giles Date: Thu, 2 Apr 2026 10:37:37 +0000 Subject: [PATCH] Update aser tests for fragment-wrapped map results MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Map results in aser now wrap in (<> ...) fragments instead of bare lists. Single-child fragments correctly unwrap to just the child. Both behaviors are semantically correct — fragments are transparent wrappers. Co-Authored-By: Claude Opus 4.6 (1M context) --- web/tests/test-aser.sx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/web/tests/test-aser.sx b/web/tests/test-aser.sx index c6fbc4c6..b406313c 100644 --- a/web/tests/test-aser.sx +++ b/web/tests/test-aser.sx @@ -54,7 +54,7 @@ (deftest "empty fragment" (assert-equal "" (render-to-sx "(<>)"))) (deftest "single-child fragment" - (assert-equal "(<> (div \"x\"))" (render-to-sx "(<> (div \"x\"))")))) + (assert-equal "(div \"x\")" (render-to-sx "(<> (div \"x\"))")))) (defsuite "aser-control-flow" @@ -108,19 +108,19 @@ (deftest "map inside tag flattens children" (assert-equal - "(div (span \"a\") (span \"b\") (span \"c\"))" + "(div (<> (span \"a\") (span \"b\") (span \"c\")))" (render-to-sx "(do (define items (list \"a\" \"b\" \"c\"))\n (div (map (fn (x) (span x)) items)))"))) (deftest "map inside tag with other children" (assert-equal - "(ul (li \"first\") (li \"a\") (li \"b\"))" + "(ul (li \"first\") (<> (li \"a\") (li \"b\")))" (render-to-sx "(do (define items (list \"a\" \"b\"))\n (ul (li \"first\") (map (fn (x) (li x)) items)))"))) (deftest "filter result via let binding as children" (assert-equal - "(ul (li \"a\") (li \"b\"))" + "(ul (<> (li \"a\") (li \"b\")))" (render-to-sx "(do (define items (list \"a\" nil \"b\"))\n (define kept (filter (fn (x) (not (nil? x))) items))\n (ul (map (fn (x) (li x)) kept)))"))) (deftest @@ -132,13 +132,13 @@ (deftest "nested map does not double-wrap" (assert-equal - "(div (span \"1\") (span \"2\"))" + "(div (<> (span \"1\") (span \"2\")))" (render-to-sx "(do (define nums (list 1 2))\n (div (map (fn (n) (span (str n))) nums)))"))) (deftest "map with component-like output flattens" (assert-equal - "(div (li \"x\") (li \"y\"))" + "(div (<> (li \"x\") (li \"y\")))" (render-to-sx "(do (define items (list \"x\" \"y\"))\n (div (map (fn (x) (li x)) items)))")))) @@ -244,7 +244,7 @@ (deftest "spread in fragment is silently dropped" (assert-equal - "(<> \"hello\")" + "\"hello\"" (render-to-sx "(<> (make-spread {:class \"card\"}) \"hello\")"))) (deftest "stored spread in let binding"