Packages
wallaby
0.30.3
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/dsl.ex
defmodule Wallaby.DSL do
@moduledoc """
Sets up the Wallaby DSL in a module.
All functions in `Wallaby.Browser` are now accessible without a module name
and `Wallaby.Browser`, `Wallaby.Element` and `Wallaby.Query` are all aliased.
## Example
```elixir
defmodule MyPage do
use Wallaby.DSL
@name_field Query.text_field("Name")
@email_field Query.text_field("email")
@save_button Query.button("Save")
def register(session) do
session
|> visit("/registration.html")
|> fill_in(@name_field, with: "Chris")
|> fill_in(@email_field, with: "c@keathly.io")
|> click(@save_button)
end
end
```
"""
defmacro __using__([]) do
quote do
alias Wallaby.Browser
alias Wallaby.Element
alias Wallaby.Query
# Kernel.tap/2 was introduced in 1.12 and conflicts with Browser.tap/2
import Kernel, except: [tap: 2]
import Wallaby.Browser
end
end
end