We've fully migrated from Ava to
@vitest_dev in drizzle-orm, drizzle-kit, and all plugin packages.
We also fully rewrote the architecture and strategy for testing drizzle-orm with different driver packages, ensuring that all of them had a specific set of tests. This postponed our next set of releases but was a necessary action to ensure we can continue delivering new features faster and with fewer bugs(I hope so)
Previously, we had tests like "pg.test.ts" for the "node-postgres" driver, which were written in ava. When adding new drivers, we were just copying everything and changing the way we connected to the database (this was the fastest solution so far to ensure we could move quickly). The codebase for tests was growing by copying everything from one file to another. At some point, when Relational Queries were released, we tried to add new tests using Vitest, so from that time, we had two different libraries for testing. The worst part was that if we needed to add new test cases, we were adding them to the first test file we had (for example, "pg.test.ts" for Postgres), meaning that all other drivers wouldn't have all the needed tests. Copying became harder and harder, so we weren't doing it everywhere.
Now, the situation is different:
1. We have everything in Vitest now.
2. Each dialect has a common file with all the tests needed to be run. Each driver has a file explaining how to connect to the database and provides a drizzle DB instance to a common logic to run all tests. So now, each dialect has a common set of tests, and adding new ones will ensure they run for each driver.
3. If some drivers don't have specific features, we have a skipTests() function to skip those tests for specific drivers, like transactions for some HTTP drivers, etc.
4. If some drivers have specific logic, we can define test cases in the driver test files
It's on the beta branch now, but I'm releasing it to the latest branch together with the generated column today or tomorrow, so it should be live soon. You can already check the new structure - link in comments
ps we skipped a few tests for this release, but I'll check them and add them to the test suites as well