UNPKG

@vip30/babel-plugin-react-add-test-id

Version:

Add attribute on react elements

85 lines (59 loc) 2.65 kB
# 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"}], ```