2020-05-15 05:33:08 +08:00
|
|
|
# Disallow using `toBeTruthy()` & `toBeFalsy()` (`no-truthy-falsy`)
|
2020-03-07 11:45:40 +08:00
|
|
|
|
2020-05-24 22:59:46 +08:00
|
|
|
## Deprecated
|
|
|
|
|
|
|
|
This rule has been deprecated in favor of
|
|
|
|
[`no-restricted-matchers`](no-restricted-matchers.md) with the following config:
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"rules": {
|
|
|
|
"jest/no-restricted-matchers": [
|
|
|
|
"error",
|
|
|
|
{
|
|
|
|
"toBeTruthy": "Avoid `toBeTruthy`",
|
|
|
|
"toBeFalsy": "Avoid `toBeFalsy`"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
---
|
|
|
|
|
2020-03-07 11:45:40 +08:00
|
|
|
Tests against boolean values should assert true or false. Asserting `toBeTruthy`
|
|
|
|
or `toBeFalsy` matches non-boolean values as well and encourages weaker tests.
|
|
|
|
|
|
|
|
For example, `expect(someBoolean).toBeFalsy()` passes when
|
|
|
|
`someBoolean === null`, and when `someBoolean === false`.
|
|
|
|
|
|
|
|
Similarly, `expect(someBoolean).toBeTruthy()` passes when `someBoolean === []`,
|
|
|
|
and when `someBoolean === 'false'` (note that `'false'` is a string).
|
|
|
|
|
|
|
|
## Rule details
|
|
|
|
|
|
|
|
This rule triggers a warning if `toBeTruthy()` or `toBeFalsy()` are used.
|
|
|
|
|
|
|
|
This rule is disabled by default.
|
|
|
|
|
|
|
|
### Default configuration
|
|
|
|
|
|
|
|
The following patterns are considered warnings:
|
|
|
|
|
|
|
|
```js
|
|
|
|
expect(someValue).toBeTruthy();
|
|
|
|
expect(someValue).toBeFalsy();
|
|
|
|
```
|
|
|
|
|
|
|
|
The following patterns are not considered warnings:
|
|
|
|
|
|
|
|
```js
|
|
|
|
expect(someValue).toBe(true);
|
|
|
|
expect(someValue).toBe(false);
|
|
|
|
```
|