0.0.9 • Published 7 years ago
babel-plugin-transform-react-qa-attributes v0.0.9
Babel plugin transform React qa classes
FORKED FROM davesnx/babel-plugin-transform-react-qa-classes
This plugin adds the component name as a data-qa in each React Component.
Why?
Basically the idea is to facilitate Automate Testing on Frontend Applications.
Automate Frontend highly requires get the DOMElements and interact with them, adding data-qa attributes make it more easy.
They would only need to get the element like that:
document.querySelectorAll('[data-qa="component"]')That depends on the Test suit, with PageObject can work like that:
div(:component, data_qa: 'component')Install
npm install --save-dev babel-plugin-transform-react-qa
# or yarn add -dUse
.babelrc
{
  "presets": ["es2015", "react"], // This asumes that you use those presets
  "env": {
    "dev": {
      "plugins": ["transform-react-qa"]
    }
  }
}Note: Adding this plugin only on
DEVmode (orPREPROD) allows not having thisdata-qaattributes on production.
You can specify the format of the name that you want and the name of the attribute:
{
  "presets": ["es2015", "react"], // This asumes that you use those presets
  "env": {
    "dev": {
      "plugins": ["transform-react-qa", {
        "attribute": "qa-property",
        "format": "camel"
      }]
    }
  }
}Note: format can be: "camel" (camelCase), "snake" (snake_case) or "kebab" (kebab-case).
with CLI
babel --plugins transform-react-qa component.jsor programatically with babel-core
require('babel-core').transform(`code`, {
  plugins: ['transform-react-qa']
})