💼 This rule is enabled in the ✅ recommended
config.
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.
alwaysAwait
-
Type:
boolean
-
Default:
false
-
Enforce
expect
to be called with anawait
expression.// ✅ 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
expect
to be called with at leastminArgs
arguments.// ✅ 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
expect
to be called with at mostmaxArgs
arguments. -
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)