vitest/prefer-to-have-been-called-times

January 2, 2026 ยท View on GitHub

๐Ÿ“ Suggest using toHaveBeenCalledTimes().

โš ๏ธ This rule warns in the ๐ŸŒ all config.

๐Ÿ”ง This rule is automatically fixable by the --fix CLI option.

In order to have a better failure message, toHaveBeenCalledTimes should be used instead of directly checking the length of mock.calls.

Rule details

This rule triggers a warning if toHaveLength is used to assert the number of times a mock is called.

Note

This rule should ideally be paired with prefer-to-have-length

The following patterns are considered warnings:

expect(someFunction.mock.calls).toHaveLength(1)
expect(someFunction.mock.calls).toHaveLength(0)

expect(someFunction.mock.calls).not.toHaveLength(1)

The following patterns are not warnings:

expect(someFunction).toHaveBeenCalledTimes(1)
expect(someFunction).toHaveBeenCalledTimes(0)

expect(someFunction).not.toHaveBeenCalledTimes(0)

expect(uncalledFunction).not.toBeCalled()

expect(method.mock.calls[0][0]).toStrictEqual(value)