From 9d64aec02572c39d3e7baf421fc74cf92403ff50 Mon Sep 17 00:00:00 2001 From: Daniel Leong Date: Sat, 28 Sep 2019 11:37:11 -0400 Subject: [PATCH] Don't make style names that start with - Can happen under advanced compilation if the fn's name starts with _ --- src/spade/util.cljc | 3 ++- test/spade/runner.cljs | 5 +++-- test/spade/util_test.cljs | 11 +++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 test/spade/util_test.cljs diff --git a/src/spade/util.cljc b/src/spade/util.cljc index 40ac8ae..a0c2e01 100644 --- a/src/spade/util.cljc +++ b/src/spade/util.cljc @@ -4,7 +4,8 @@ (defn factory->name [factory] (-> (.-name factory) (str/replace "_factory$" "") - (str/replace #"[_$]" "-"))) + (str/replace #"[_$]" "-") + (str/replace #"^-" "_"))) (defn sanitize [s] (-> s diff --git a/test/spade/runner.cljs b/test/spade/runner.cljs index 656bb1c..ddfcf5d 100644 --- a/test/spade/runner.cljs +++ b/test/spade/runner.cljs @@ -1,5 +1,6 @@ (ns spade.runner - (:require [doo.runner :refer-macros [doo-tests doo-all-tests]] - [spade.core-test])) + (:require [doo.runner :refer-macros [doo-all-tests]] + [spade.core-test] + [spade.util-test])) (doo-all-tests #"spade\..*-test") diff --git a/test/spade/util_test.cljs b/test/spade/util_test.cljs new file mode 100644 index 0000000..a446bd5 --- /dev/null +++ b/test/spade/util_test.cljs @@ -0,0 +1,11 @@ +(ns spade.util-test + (:require [cljs.test :refer-macros [deftest testing is]] + [spade.util :refer [factory->name]])) + +(deftest factory->name-test + (testing "Never prefix with illegal characters" + ; simulate a fn under advanced compilation having + ; a name that starts with _ + (is (= "_advanced-compile" + (factory->name #js {:name "_advanced_compile"}))))) +