Codemod to convert tests written in jest to ava.
Check fixtures/
folder to see some example.
npm i -g to-ava
to-ava ./jest.test.js
to-ava -p=ts ./jest.test.ts
to-ava -p=ts ./tests
It excludes files that are not test files. A file is supposed to contain tests if its name includes either test.
either spec.
-
.toEqual
-
.toBe
-
.toBeNull
-
.toBeFalsy
-
.toBeTruthy
-
.toMatchSnapshot
-
.toBeDefined
-
.toBeUndefined
-
.toBeInstanceOf
-
.toBeGreaterThan
-
.toBeGreaterThanOrEqual
-
.toBeLessThan
-
.toBeLessThanOrEqual
-
.toHaveLength
-
.toHaveProperty
-
test.each()
- trasnformation of test hooks (
before()
,beforeEach()
,after()
,afterAll()
)
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');
- nested
describe()
- require manual rewriting of jest tests in order to remove nesteddescribe()
- skipped tests
describe.skip()
,it.skip()
npm t
- 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