-
-
Notifications
You must be signed in to change notification settings - Fork 207
Open
Description
Elixir and Erlang/OTP versions
Erlang/OTP 26 [erts-14.2.5] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]
Elixir 1.16.2 (compiled with Erlang/OTP 2
Operating system
macOS and Ubuntu
Browser
N/A or all
Driver
ChromeDriver
Correct Configuration
- I confirm that I have Wallaby configured correctly.
Current behavior
I'd like to be able to easily assert on the js console output in my tests. Ideally I'd be able to assert that a specific console log was output for a given step of the test.
This is kind of possible right now with CaptureIO.capture_io but there's some drawbacks currently:
- With
js_loggerset to the defaultCaptureIO.capture_iodoes capture the console output, but the console output is still printed to the terminal window thatmix testis running in which makes it hard to read the test output - Most of the time I don't care about the console output so I'd like to be able to configure the console logging per-test so I don't need to wrap everything with
CaptureIO - Adding a
CaptureIOassertion for an individual step requires a helper function which breaks the flow of a test significantly, e.g. something like:
|> assert_io(
fn ->
session
|> visit(~p"/maps/#{team}/members")
end,
"members page visited"
)the helper is small:
defp assert_io(session, fun, expected) when is_function(fun, 0) do
js_io = CaptureIO.capture_io(fun)
assert js_io =~ expected
endAlthough it might be possible to workaround that with a macro (but that might feel a bit too magical)
Expected behavior
I'd like it to be easier to assert on js console output and have that documented within the library
Test Code & HTML
N/A
Demonstration Project
No response
Metadata
Metadata
Assignees
Labels
No labels