Skip to content

Instantly share code, notes, and snippets.

@realgenekim
Last active August 12, 2024 22:06
Show Gist options
  • Save realgenekim/56c665db803a03f10a193daa83c8a33d to your computer and use it in GitHub Desktop.
Save realgenekim/56c665db803a03f10a193daa83c8a33d to your computer and use it in GitHub Desktop.
Getting hyperfiddle RCF working in CLJS (Fulcro app)
(ns com.example.hyperfiddle
(:require
[hyperfiddle.rcf]
[taoensso.timbre :as log]))
; wait to enable tests until after app namespaces are loaded
(defn rcf-enable []
(hyperfiddle.rcf/enable!))
#?(:clj
;(def rcf-enable! (delay @(requiring-resolve 'hyperfiddle.rcf/enable!)))
(def rcf-enable! hyperfiddle.rcf/enable!)
:cljs
(def rcf-enable! hyperfiddle.rcf/enable!))
;(def rcf-enable! nil))
(defn rcf-shadow-hook
{:shadow.build/stages #{:compile-prepare :compile-finish}}
[build-state & args]
;; NOTE this won't prevent RCF tests to run during :require-macros phase
(log/error :rcf "RCF tests enabled")
(case (:shadow.build/stage build-state)
:compile-prepare (rcf-enable! false)
:compile-finish (rcf-enable!))
build-state)
; subsequent REPL interactions will run tests
; prevent test execution during cljs hot code reload
#?(:cljs (defn ^:dev/before-load stop [] (hyperfiddle.rcf/enable! false)))
#?(:cljs (defn ^:dev/after-load start [] (hyperfiddle.rcf/enable!)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment