@welldone-software/babel-plugin-react-add-test-id

Add attribute on react elements

Usage no npm install needed!

<script type="module">
  import welldoneSoftwareBabelPluginReactAddTestId from 'https://cdn.skypack.dev/@welldone-software/babel-plugin-react-add-test-id';
</script>

README

babel-plugin-react-add-test-id

Example

in

const Foo = () =>
  <Bar>
    <div>
  </Bar>

out

const Foo = () =>
  <Bar data-test-id="Foo-Bar">
    <div data-test-id="Foo-Bar-div">
  </Bar>

Useful with styled-components

in

const Wrapper = styled.div`...`

const Bar = styled.div`...`

const Foo = () =>
  <Wrapper>
    <Bar>
  </Wrapper>

out

const Wrapper = styled.div`...`

const Bar = styled.div`...`

const Foo = () =>
  <Wrapper data-test-id="Foo-Wrapper">
    <Bar data-test-id="Foo-Wrapper-Bar">
  </Wrapper>

Install

yarn add @welldone-software/babel-plugin-react-add-test-id

or

npm install @welldone-software/babel-plugin-react-add-test-id

Usage

in .babelrc

"plugins": [
  "@welldone-software/babel-plugin-add-test-id",
  ...

Options

Property Type Default Description
attrName String data-test-id Define the attribute name
mode String regular One of minimal, regular, full
ignoreElements Array of Strings [div, input, a, button, span, p, br, hr, ul, ol, li, img, form, h1, h2, h3, h4, h5, h6, svg, path, g] Avoid adding test id on those elements
additionalIgnoreElements Array of Strings [] Add extra ignoreElements
delimiter String - Separate components name with the delimiter

in .babelrc

"plugins": [
  ["@welldone-software/babel-plugin-add-test-id", {"attrName": "data-test-id-example"}],