to-ava
v1.2.8
Published
Codemod to convert jest test suites to ava
Maintainers
Readme
to-ava
Codemod to convert tests written in jest to ava.
Check fixtures/ folder to see some example.
Usage
Install
npm i -g to-ava
Run it on a Javascript file
to-ava ./jest.test.js
Run it on a Typescript file
to-ava -p=ts ./jest.test.ts
Run it on a folder
to-ava -p=ts ./tests
Notes
It excludes files that are not test files. A file is supposed to contain tests if its name includes either test. either spec.
Support
Supported Assertions
- [X]
.toEqual - [X]
.toBe - [X]
.toBeNull - [X]
.toBeFalsy - [X]
.toBeTruthy - [X]
.toMatchSnapshot - [X]
.toBeDefined - [X]
.toBeUndefined - [X]
.toBeInstanceOf - [X]
.toBeGreaterThan - [X]
.toBeGreaterThanOrEqual - [X]
.toBeLessThan - [X]
.toBeLessThanOrEqual - [X]
.toHaveLength - [X]
.toHaveProperty
Other things supported
- [X]
test.each() - [X] trasnformation of test hooks (
before(),beforeEach(),after(),afterAll())
Assertions not supported
All the other assertions are not supported. Including all the assertions used in combination with .not - for example .not.toBeDefined()
Those assertions will be still transformed, however not into an ava assertion, but as a comment with the "TODO: " symbol. Thanks for the "TODO: " symbol, it will be possible to find all the assertions not transformed, and fix them manually.
For example
expect(res).toContain('0')
// will be transformed into
// TODO: expect(res).toContain('0');Other things not supported
- [ ] nested
describe()- require manual rewriting of jest tests in order to remove nesteddescribe() - [ ] skipped tests
describe.skip(),it.skip()
Test
npm t
TODO
- [X] add support for beforeEach, beforeAll, afterEach, afterAll
- [ ] refactor: split the transformer into multiple functions, with clear names
- [ ] add support for more jest assertion. The list follows:
- [ ]
.not.toBeDefined - [ ]
.not.toBeNull - [ ]
.not.toContain - [ ]
.not.toEqual
- [ ]
- [ ] add support for nested describes
