π Enforce valid expect() usage.
πΌrecommended config. This rule warns in the π all config.
π§ This rule is automatically fixable by the --fix CLI option.
This rule triggers a warning if expect is called with no argument or with more than one argument. You change that behavior by setting the minArgs and maxArgs options.
| Name | Description | Type |
|---|---|---|
alwaysAwait |
Require awaiting every async assertion. | Boolean |
asyncMatchers |
Matchers that should be considered async assertions. | String[] |
maxArgs |
Maximum number of arguments allowed for expect. |
Number |
minArgs |
Minimum number of arguments allowed for expect. |
Number |
alwaysAwait
-
Type:
boolean -
Default:
false -
Enforce
expectto be called with anawaitexpression.// β good await expect(Promise.resolve(1)).resolves.toBe(1) await expect(Promise.reject(1)).rejects.toBe(1) // β bad expect(Promise.resolve(1)).resolves.toBe(1) expect(Promise.reject(1)).rejects.toBe(1)
asyncMatchers
- Type:
string[] - Default:
[]
{
"vitest/valid-expect": ["error", {
"asyncMatchers": ["toBeResolved", "toBeRejected"]
}]
}avoid using asyncMatchers with expect:
minArgs
-
Type:
number -
Default:
1 -
Enforce
expectto be called with at leastminArgsarguments.// β good expect(1).toBe(1) expect(1, 2).toBe(1) expect(1, 2, 3).toBe(1) // β bad expect().toBe(1) expect(1).toBe()
maxArgs
-
Type:
number -
Default:
1 -
Enforce
expectto be called with at mostmaxArgsarguments. -
Exception:
expect(value, "message")is allowed.// β good expect(1).toBe(1) expect(1, 'expect value to be one').toBe(1) const message = 'expect value to be one' expect(1, `Error Message: ${message}`).toBe(1) // β bad expect(1, 2, 3, 4).toBe(1)