feat: added chai style assertions #8842
Open
+1,220
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds Chai-style assertion names for spy matchers, enabling users migrating from Mocha+Chai+Sinon to use familiar assertion syntax without rewriting their tests.
Resolves #8819
Users migrating from Mocha/Chai/Sinon to Vitest currently need to rewrite all their spy assertions from Chai-style (e.g.,
expect(spy).to.have.been.called()) to Jest-style (e.g.,expect(spy).toHaveBeenCalled()). This creates friction during migration and requires significant test refactoring.This implementation provides Chai-style assertion names that delegate to existing Jest-style implementations, allowing both styles to coexist.
Added the following assertions that delegate to existing Jest-style implementations:
Call Assertions
called()toHaveBeenCalled()callCount(n)toHaveBeenCalledTimes(n)calledWith(...args)toHaveBeenCalledWith(...args)calledOnce()toHaveBeenCalledOnce()calledOnceWith(...args)toHaveBeenCalledExactlyOnceWith(...args)calledTwice()toHaveBeenCalledTimes(2)calledThrice()toHaveBeenCalledTimes(3)lastCalledWith(...args)toHaveBeenLastCalledWith(...args)nthCalledWith(n, ...args)toHaveBeenNthCalledWith(n, ...args)Return Assertions
returned()toHaveReturned()returnedWith(value)toHaveReturnedWith(value)returnedTimes(n)toHaveReturnedTimes(n)lastReturnedWith(value)toHaveLastReturnedWith(value)nthReturnedWith(n, value)toHaveNthReturnedWith(n, value)Ordering Assertions
calledBefore(spy)toHaveBeenCalledBefore(spy)calledAfter(spy)toHaveBeenCalledAfter(spy)Tests
pnpm test:ci.Documentation