Używam clj-webdriver do testowania w oparciu o Selenium w aplikacji internetowej Clojurescript. Czasami coś jest w samej aplikacji, z którą chcę się bawić, gdy test jest uruchomiony. Widzę, że clj-webdriver ma coś o nazwie (execute-script js args)
, które pobiera ciąg kodu Javascript i uruchamia go w bieżącej przeglądarce testowej. Testowałem to i wydaje się, że działa. Chciałbym jednak przekazać kod clojurescript do execute-script
. Potrzebuję czegoś, co skompiluje moją formę Clojure do kodu Clojurescript.Jak skompilować formularze Clojurescript z poziomu Clojure?
Widzę następujący question tego rodzaju związane. Mówi się, aby użyć funkcji js/emit z sprzęgła. Szukałem sprzęgło i okazało się, że wymienione jedynie w (Widok) w cljs-views.clj próbowałem następujące w repl:
user> (use 'com.ashafa.clutch.cljs-views)
nil
user> view
<core$comp$fn__4034 [email protected]>
user> js/emit
CompilerException java.lang.RuntimeException: No such namespace: js, #compiling (NO_SOURCE_PATH:1)
user>
To nie jest strasznie zaskakujące, jak js może być w regularnych Clojure namesapce? Ale w jaki sposób mogę użyć tego (lub dowolnego innego) systemu do generowania kodu Clojurescript (javascript), który mogę przekazać do execute-script
?