Packages
wallaby
0.30.4
0.31.0
0.30.12
0.30.11
0.30.10
0.30.9
0.30.8
0.30.7
0.30.6
0.30.5
0.30.4
0.30.3
0.30.2
0.30.1
0.30.0
0.29.1
0.29.0
0.28.1
0.28.0
0.27.0
0.26.2
0.26.1
0.26.0
0.25.1
0.25.0
0.24.1
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.0
0.16.1
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.1
0.3.0
0.2.0
0.1.0
0.0.1
Concurrent feature tests for elixir
Current section
Files
Jump to
Current section
Files
lib/wallaby/chrome/logger.ex
defmodule Wallaby.Chrome.Logger do
@moduledoc false
@log_regex ~r/^(?<url>\S+) (?<line>\d+):(?<column>\d+) (?<message>.*)$/s
@string_regex ~r/^"(?<string>.+)"$/
def parse_log(%{"level" => "SEVERE", "source" => "javascript", "message" => msg}) do
if Wallaby.js_errors?() do
raise Wallaby.JSError, msg
end
end
def parse_log(%{"level" => "INFO", "source" => "console-api", "message" => msg}) do
if Wallaby.js_logger() do
case Regex.named_captures(@log_regex, msg) do
%{"message" => message} -> print_message(message)
end
end
end
def parse_log(_), do: nil
defp print_message(message) do
message =
case Regex.named_captures(@string_regex, message) do
%{"string" => string} -> format_string(string)
nil -> message
end
IO.puts(Wallaby.js_logger(), message)
end
defp format_string(message) do
unescaped = String.replace(message, ~r/\\(.)/, "\\1")
case Jason.decode(unescaped) do
{:ok, data} -> "\n#{Jason.encode!(data, pretty: true)}"
{:error, _} -> unescaped
end
end
end