
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
eslint-plugin-protractor
Advanced tools
ESLint rules for Protractor
This plugin would not only help catch common Protractor-specific errors early, follow the best practices for writing Protractor tests, but would also help maintaining good and reliable element locators.
The plugin would be of the most help if configured to run in your IDE of choice on the fly.
This gif shows integration of ESLint with eslint-plugin-protractor into WebStorm IDE. Find out more at WebStorm ESLint configuration.
Install ESLint and this plugin either locally or globally.
$ npm install eslint --save-dev
$ npm install eslint-plugin-protractor --save-dev
Install eslint-plugin-protractor
as a dev-dependency:
npm install --save-dev eslint-plugin-protractor
Enable the plugin by adding it to your .eslintrc
:
plugins:
- protractor
There are various types of rules implemented in the plugin. Here is a rough categorization.
browser.actions()
usageelement
and element.all
ElementArrayFinder
methods on ElementFinder
return
statements in callbacks of ElementArrayFinder
methodsgetInnerHtml()
and getOuterHtml()
methodsgetRawId()
methodgetLocationAbsUrl()
methodif
conditionElementFinder
or ElementArrayFinder
is declared with no applied actionexecuteScript()
or executeAsyncScript()
are called with missing or empty scriptelement()
, element.all()
, $()
and $$()
by.className()
locatorng-repeat
syntax in by.repeater()
locatorsby.id()
locatorby.tagName()
locatorbrowser.wait()
by.xpath()
locatorbrowser.get()
or browser.driver.get()
inside it()
browser.get()
or browser.driver.get()
first()
instead of get(0)
and last()
instead of get(-1)
count()
instead of then()
and length
protractor.promise.all()
to resolve multiple promises$
and $$
shortcutsbrowser.pause()
browser.sleep()
browser.driver
instead of browser
directlyHere is a table with all the available rules sorted by the default error level:
Rule | Default Error Level | Auto-fixable | Options |
---|---|---|---|
missing-perform | 2 (Error) | ||
no-browser-pause | 2 | ||
correct-chaining | 2 | Yes | |
no-invalid-selectors | 2 | ||
no-array-finder-methods | 2 | ||
valid-locator-type | 2 | ||
no-compound-classes | 2 | ||
no-get-inner-outer-html | 2 | ||
no-get-raw-id | 2 | ||
missing-wait-message | 1 (Warning) | ||
no-browser-sleep | 1 | ||
no-by-xpath | 1 | ||
no-describe-selectors | 1 | ||
no-angular-classes | 1 | ||
use-angular-locators | 1 | ||
no-angular-attributes | 1 | ||
no-bootstrap-classes | 1 | ||
use-simple-repeaters | 1 | ||
no-shadowing | 1 | ||
use-first-last | 1 | Yes | |
no-get-in-it | 1 | ||
array-callback-return | 1 | ||
no-absolute-url | 1 | ||
no-get-location-abs-url | 1 | ||
no-expect-in-po | 1 | requires plugin "settings" | |
no-promise-in-if | 1 | ||
no-execute-script | 1 | requires plugin "settings" | |
no-repetitive-locators | 1 | ||
no-repetitive-selectors | 1 | ||
use-count-method | 1 | ||
valid-by-id | 1 | ||
valid-by-tagname | 1 | ||
limit-selector-depth | 1 | number of nodes (default 5) | |
bare-element-finders | 1 | ||
empty-script | 1 | ||
use-promise-all | 0 (Turned off) | ||
by-css-shortcut | 0 | ||
no-browser-driver | 0 |
For example, the missing-perform
rule is enabled by default and will cause
ESLint to throw an error (with an exit code of 1
) when triggered.
The requires plugin "settings"
note indicates that a rule needs the plugin to have configured settings in your ESLint config.
For example, no-execute-script
rule expects configured paths to either spec, or page object files, or both.
You may customise each rule by adding a value in your .eslintrc
rules
property:
plugins:
- protractor
rules:
protractor/missing-perform: 0
See configuring rules for more information.
This plugin export a recommended
configuration that enforce good practices.
To enable this configuration use the extends
property in your .eslintrc
config file:
{
"plugins": [
"protractor"
],
"extends": "plugin:protractor/recommended"
}
See ESLint documentation for more information about extending configuration files.
© 2016-infinity Alexander Afanasyev and contributors.
Licensed under the MIT license.
FAQs
ESLint rules for Protractor
The npm package eslint-plugin-protractor receives a total of 2,999 weekly downloads. As such, eslint-plugin-protractor popularity was classified as popular.
We found that eslint-plugin-protractor demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.