Fork me on GitHub

@jstaab just for clarification, figwheel reloads what its watching including Clojure files


this will not of course restart your server to pick up changes in ring handlers etc.


but you can use var references (i.e #'my-handler) instead of direct references to achieve a good reloading workflow, without having to setup a reloaded workflow with integrant or component


so if you add a directory with Clojure code that you want reloaded to :watch-dirs the code will be reloaded on file change


@bhauman is there any way to turn on extra debugging when running tests? I'm so so close to being able to switch the project over to figwheel-main. When I run tests locally they run fine. When I run in CircleCI (inside a container running Ubuntu) they timeout (with "Eval timed out!") The log shows [0928/172324.990490:INFO:(399)] Type a Javascript expression to evaluate or "quit" to exit. So it seems that chromium-browser is running...???


I know that the stream handling (STDIN/STDOUT) with the browser is delicate... Just thinking of it's possible insert something like "tee" to log the detailed conversation with the browser?


Does do anything to change the error messages that come back from CircleCI?


oooh let me try that!


@shaun-mahood i assume that should be in the metadata map in my test.cljs.edn ?


yeah I think so - same as any other figwheel specific option


Running again on CircleCI right now.. There is more debugging in the terminal (which may be helpful), but the log of the browser session is the same.


Can you get it to do anything like console.log? I've never done any headless work so now I'm just pretending to have ideas 🙂


It seems like it doesn't actually start testing


the tricky bit is .. this is what you see on STDOUT before the tests run Environment output being logged to: target/public/cljs-out/test/js-environment.log in either the happy case -or- or the case when it eventually times out


hmm interesting.. I set the arg to run-tests-async to 900000 (which is 15 minutes), but it timed out after 3 minutes!!


it seems like if I set :repl-eval-timeout to a higher-than-default value the tests complete (as if it uses that default instead the arg to run-tests-async


yay! CircleCI passed! My theory is that there is a figwheel-repl connection to the browser (chromium --headless --repl) and that's why :repl-eval-timeout is important The 8 second default is enough on a dev workstation, but not quite enough in CircleCI... so increasing it allows the browser repl connection to get established so the tests can be run.


I wonder if there's a good place for something about that on


perhaps.. let's see if Bruce thinks my explanation is plausible

👍 4