@vip30/babel-plugin-react-add-test-id
Version:
Add attribute on react elements
85 lines (59 loc) • 2.65 kB
Markdown
# 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"}],
```