kaocha

Official support channel: https://clojureverse.org/c/projects/kaocha
plexus 2020-03-19T15:43:56.125200Z

@oliy exceptions are handled by the is macro, so they will always bubble up to there.

plexus 2020-03-19T15:45:01.125300Z

yeah sorry, it's really hard to get diagnostics on this stuff, because clj.repl.node/repl-env ignores the stderr/stdout of the node process, so you just don't know what's happening there.

plexus 2020-03-19T15:46:27.125500Z

it installs handlers which intercept the things that are printed and sends them on to the clojure process, but if something goes wrong before those handlers are active then it's hard to see what's going on. I would try wrapping the node executable in a wrapper which spits the tap's the out/err streams to a file

2020-03-19T15:53:25.126900Z

hi @plexus thanks, so do i need to hook into what is does more directly, rather than relying on the reporter?

plexus 2020-03-19T15:58:36.127600Z

I don't see how you would do that. is just sets up a try/catch, so when you're in the catch branch you're no longer in the try

plexus 2020-03-19T15:59:11.127900Z

(defmacro try-expr
  "Used by the 'is' macro to catch unexpected exceptions.
  You don't call this."
  {:added "1.1"}
  [msg form]
  `(try ~(assert-expr msg form)
        (catch Throwable t#
          (do-report {:type :error, :message ~msg,
                      :expected '~form, :actual t#}))))

2020-03-19T18:20:17.130200Z

Interesting. I have a fixture around the test that is setting up the browser connection, so I'd expect the bindings to still be available when do-report is called. When I inspected the stack trace from inside my :error reporter it didn't contain any of my fixtures

2020-03-19T18:20:24.130500Z

I'll have another look