all
config.
💡 This rule is manually fixable by editor suggestions.
Ensure every test to have either expect.assertions(<number of assertions>)
OR
expect.hasAssertions()
as its first expression.
This will warn if a test has no assertions, or if it has assertions but they are not the first expression.
Examples of incorrect code for this rule:
test('no assertions', () => {
// ...
});
test('assertions not first', () => {
expect(true).toBe(true);
// ...
});
Examples of correct code for this rule:
test('assertions first', () => {
expect.assertions(1);
// ...
});
test('assertions first', () => {
expect.hasAssertions();
// ...
});
onlyFunctionsWithAsyncKeyword
(default: false
)
When true
, only functions with the async
keyword will be checked.
when this option is enabled the following code will be considered incorrect:
test('assertions first', () => {
const data = await fetchData();
expect(data).toBe('peanut butter');
});
To fix this, you'll need to add expect.assertions(1)
or expect.hasAssertions()
as the first expression:
test('assertions first', () => {
expect.assertions(1);
const data = await fetchData();
expect(data).toBe('peanut butter');
});
onlyFunctionsWithExpectInLoop
(default: false
)
When true
, only functions with expect
in a loop will be checked.
when this option is enabled the following code will be considered incorrect:
test('assertions first', () => {
for (let i = 0; i < 10; i++) {
expect(i).toBeLessThan(10);
}
});
To fix this, you'll need to add expect.assertions(1)
or expect.hasAssertions()
as the first expression:
test('assertions first', () => {
expect.hasAssertions();
for (let i = 0; i < 10; i++) {
expect(i).toBeLessThan(10);
}
});
onlyFunctionsWithExpectInCallback
When true
, only functions with expect
in a callback will be checked.
when this option is enabled the following code will be considered incorrect:
test('assertions first', () => {
fetchData((data) => {
expect(data).toBe('peanut butter');
});
});
To fix this, you'll need to add expect.assertions(1)
or expect.hasAssertions()
as the first expression:
test('assertions first', () => {
expect.assertions(1);
fetchData((data) => {
expect(data).toBe('peanut butter');
});
});