Packages
wallaby
0.29.0
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/driver/log_store.ex
defmodule Wallaby.Driver.LogStore do
@moduledoc false
use Agent
def start_link(opts) do
opts = Keyword.put_new(opts, :name, __MODULE__)
Agent.start_link(fn -> Map.new() end, opts)
end
@doc """
Appends logs to a session
"""
def append_logs(session, logs, log_store \\ __MODULE__)
def append_logs(session, logs, log_store) when is_binary(session) and not is_list(logs) do
append_logs(session, List.wrap(logs), log_store)
end
def append_logs(session, logs, log_store) when is_binary(session) do
Agent.get_and_update(log_store, fn map ->
Map.get_and_update(map, session, fn
nil -> unique_logs([], logs)
old_logs -> unique_logs(old_logs, logs)
end)
end)
end
def get_logs(session, log_store \\ __MODULE__) when is_binary(session) do
Agent.get(log_store, fn map -> Map.get(map, session) end)
end
defp unique_logs(old_logs, new_logs) do
union = new_logs -- old_logs
{union, old_logs ++ union}
end
end