HTMLTestIdentifiers
provides the basic functionality to add data-testid
attribute depending on configuration.
The package can be installed by adding html_test_identifiers
to your list of dependencies in mix.exs
:
def deps do
[
{:html_test_identifiers, github: "mirego/html_test_identifiers", tag: "v0.1.1"}
]
end
Add the following to your config files if you want data-testid
included in your release :
config :html_test_identifiers, provider: HTMLTestIdentifiers.TestID
Add the following to your config files if you don't want data_testid
attribute to be included in your release :
config :html_test_identifiers, provider: HTMLTestIdentifiers.NoTestID
If there is no configuration, HTMLTestIdentifiers.NoTestID
will be used by default
# With `config :html_test_identifiers, provider: HTMLTestIdentifiers.TestID`
HTMLTestIdentifiers.testid_attribute("hello")
# => "data-testid=\"hello\"
HTMLTestIdentifiers.testid_key("hello")
# => "hello"
# With `config :html_test_identifiers, provider: HTMLTestIdentifiers.NoTestID`
HTMLTestIdentifiers.testid_attribute("hello")
# => nil
HTMLTestIdentifiers.testid_key("hello")
# => nil
You can also import the module in a view helpers module:
defmodule MyView do
import HTMLTestIdentifiers
end
Considering .eex
file content
<h1 <%= testid_attribute("title-id") %>>Title</h1>
<%= content_tag :p, "paragraph text content", data_testid: testid_key("paragraph-id") %>
with config :html_test_identifiers, provider: HTMLTestIdentifiers.TestID
, resulting HTML will be
<h1 data-testid="title-id">Title</h1>
<p data-testid="paragraph-id">paragraph text content</p>
with config :html_test_identifiers, provider: HTMLTestIdentifiers.NoTestID
, resulting HTML will be
<h1>Title</h1>
<p>paragraph text content</p>
- @romarickb
html_test_identifiers
is © 2019 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md
file.
Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We’re a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.
We also love open-source software and we try to give back to the community as much as we can.