From 149d1829beefc4e0f3a502e31f85c8ecf1699efe Mon Sep 17 00:00:00 2001 From: davidnolen Date: Tue, 25 Nov 2025 20:31:41 -0500 Subject: [PATCH 1/4] add proxy tests to main test runner and lite mode runner --- src/test/cljs/cljs/proxy_test.cljs | 33 +++++++++++++++++++++++++++++ src/test/cljs/lite_test_runner.cljs | 4 +++- src/test/cljs/test_runner.cljs | 6 ++++-- 3 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 src/test/cljs/cljs/proxy_test.cljs diff --git a/src/test/cljs/cljs/proxy_test.cljs b/src/test/cljs/cljs/proxy_test.cljs new file mode 100644 index 000000000..3005729da --- /dev/null +++ b/src/test/cljs/cljs/proxy_test.cljs @@ -0,0 +1,33 @@ +; Copyright (c) Rich Hickey. All rights reserved. +; The use and distribution terms for this software are covered by the +; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) +; which can be found in the file epl-v10.html at the root of this distribution. +; By using this software in any fashion, you are agreeing to be bound by +; the terms of this license. +; You must not remove this notice, or any other, from this software. + +(ns cljs.proxy-test + (:refer-global :only [Object]) + (:require [cljs.test :as test :refer-macros [deftest testing is are]] + [cljs.proxy :refer [builder]] + [goog.object :as gobj])) + +(def proxy (builder)) + +(deftest map-proxy + (let [proxied (proxy {:foo 1 :bar 2})] + (is (== 1 (gobj/get proxied "foo"))) + (is (== 2 (gobj/get proxied "bar"))) + (is (= ["foo" "bar"] (seq (Object/keys proxied)))))) + +(deftest vector-proxy + (let [proxied (proxy [1 2 3 4])] + (is (== 4 (alength proxied))) + (is (== 1 (aget proxied 0))) + (is (== 4 (aget proxied 3))))) + +(comment + + (test/run-tests) + +) diff --git a/src/test/cljs/lite_test_runner.cljs b/src/test/cljs/lite_test_runner.cljs index 95313b3f8..3f20686df 100644 --- a/src/test/cljs/lite_test_runner.cljs +++ b/src/test/cljs/lite_test_runner.cljs @@ -62,7 +62,8 @@ [cljs.repl-test] [cljs.lite-collections-test] [cljs.extend-to-native-test] - [cljs.var-test])) + [cljs.var-test] + [cljs.proxy-test])) (set! *print-newline* false) @@ -124,4 +125,5 @@ 'cljs.lite-collections-test 'cljs.extend-to-native-test 'cljs.var-test + 'cljs.proxy-test ) diff --git a/src/test/cljs/test_runner.cljs b/src/test/cljs/test_runner.cljs index 7e551f9de..94f302a44 100644 --- a/src/test/cljs/test_runner.cljs +++ b/src/test/cljs/test_runner.cljs @@ -61,7 +61,8 @@ [cljs.walk-test] [cljs.repl-test] [cljs.extend-to-native-test] - [cljs.var-test])) + [cljs.var-test] + [cljs.proxy-test])) (set! *print-newline* false) @@ -124,4 +125,5 @@ 'cljs.walk-test 'cljs.repl-test 'cljs.extend-to-native-test - 'cljs.var-test) + 'cljs.var-test + 'cljs.proxy-test) From 7fb24da6b83966f31700f2e547783df5a3986f66 Mon Sep 17 00:00:00 2001 From: davidnolen Date: Tue, 25 Nov 2025 20:36:52 -0500 Subject: [PATCH 2/4] avoid key order issue --- src/test/cljs/cljs/proxy_test.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/cljs/cljs/proxy_test.cljs b/src/test/cljs/cljs/proxy_test.cljs index 3005729da..36b53d7cd 100644 --- a/src/test/cljs/cljs/proxy_test.cljs +++ b/src/test/cljs/cljs/proxy_test.cljs @@ -18,7 +18,7 @@ (let [proxied (proxy {:foo 1 :bar 2})] (is (== 1 (gobj/get proxied "foo"))) (is (== 2 (gobj/get proxied "bar"))) - (is (= ["foo" "bar"] (seq (Object/keys proxied)))))) + (is (= #{"foo" "bar"} (into #{} (Object/keys proxied)))))) (deftest vector-proxy (let [proxied (proxy [1 2 3 4])] From d916c3336d394f37626c2b62fb39e82989c88e4a Mon Sep 17 00:00:00 2001 From: davidnolen Date: Tue, 25 Nov 2025 22:46:40 -0500 Subject: [PATCH 3/4] add more lite collection tests --- src/test/cljs/cljs/lite_collections_test.cljs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/cljs/cljs/lite_collections_test.cljs b/src/test/cljs/cljs/lite_collections_test.cljs index 99cb2be29..56d44d0eb 100644 --- a/src/test/cljs/cljs/lite_collections_test.cljs +++ b/src/test/cljs/cljs/lite_collections_test.cljs @@ -21,6 +21,8 @@ (deftest test-set-lite-with-set (is (= (set-lite []) (set []))) (is (= (set []) (set-lite []))) + (is (= (set-lite ["foo" "bar"]) (set-lite ["foo" "bar"]))) + (is (= (set-lite ["foo" "bar"]) (set-lite #js ["foo" "bar"]))) (is (= (set-lite [(MapEntry. 1 2 nil)]) (set [(MapEntry. 1 2 nil)])))) From add813b58358de73dcf722a73e33ac5f8627f45b Mon Sep 17 00:00:00 2001 From: davidnolen Date: Tue, 25 Nov 2025 22:55:13 -0500 Subject: [PATCH 4/4] move the tests up to avoid side-effects --- src/test/cljs/lite_test_runner.cljs | 11 +++++------ src/test/cljs/test_runner.cljs | 10 +++++----- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/test/cljs/lite_test_runner.cljs b/src/test/cljs/lite_test_runner.cljs index 3f20686df..0b0c45b56 100644 --- a/src/test/cljs/lite_test_runner.cljs +++ b/src/test/cljs/lite_test_runner.cljs @@ -7,7 +7,8 @@ ;; You must not remove this notice, or any other, from this software. (ns lite-test-runner - (:require [cljs.test :refer-macros [run-tests]] + (:require [cljs.proxy-test] + [cljs.test :refer-macros [run-tests]] [cljs.apply-test] [cljs.primitives-test] [cljs.destructuring-test] @@ -62,8 +63,7 @@ [cljs.repl-test] [cljs.lite-collections-test] [cljs.extend-to-native-test] - [cljs.var-test] - [cljs.proxy-test])) + [cljs.var-test])) (set! *print-newline* false) @@ -73,6 +73,7 @@ (enable-console-print!)) (run-tests + 'cljs.proxy-test 'cljs.apply-test 'cljs.primitives-test 'cljs.destructuring-test @@ -124,6 +125,4 @@ 'cljs.repl-test 'cljs.lite-collections-test 'cljs.extend-to-native-test - 'cljs.var-test - 'cljs.proxy-test - ) + 'cljs.var-test) diff --git a/src/test/cljs/test_runner.cljs b/src/test/cljs/test_runner.cljs index 94f302a44..16a1cbf18 100644 --- a/src/test/cljs/test_runner.cljs +++ b/src/test/cljs/test_runner.cljs @@ -7,7 +7,8 @@ ;; You must not remove this notice, or any other, from this software. (ns test-runner - (:require [cljs.test :refer-macros [run-tests]] + (:require [cljs.proxy-test] + [cljs.test :refer-macros [run-tests]] [cljs.apply-test] [cljs.primitives-test] [cljs.destructuring-test] @@ -61,8 +62,7 @@ [cljs.walk-test] [cljs.repl-test] [cljs.extend-to-native-test] - [cljs.var-test] - [cljs.proxy-test])) + [cljs.var-test])) (set! *print-newline* false) @@ -72,6 +72,7 @@ (enable-console-print!)) (run-tests + 'cljs.proxy-test 'cljs.apply-test 'cljs.primitives-test 'cljs.destructuring-test @@ -125,5 +126,4 @@ 'cljs.walk-test 'cljs.repl-test 'cljs.extend-to-native-test - 'cljs.var-test - 'cljs.proxy-test) + 'cljs.var-test)