Git Product home page Git Product logo

ava-codemods's Introduction

ava-codemods Build Status

Translations: Français

Codemods for AVA that simplifies upgrading to newer versions and migrating to AVA

Codemods are small programs that help you automate changes to your codebase. Think of them as search and replace on steroids.

This module contains a set of codemods that enable you to upgrade your code between various AVA releases and migrate from existing test runners to AVA. It is maintained by the AVA team, and will be updated anytime we introduce breaking API changes.

Install

$ npm install --global ava-codemods

This installs two binaries ava-codemods and tape-to-ava.

Migrating to AVA

Currently we support migrating from tape to AVA.

$ tape-to-ava --help

	Usage
	  $ tape-to-ava <path> [options]

	path	Files or directory to transform. Can be a glob like src/**.test.js

	Options
	  --force, -f	Bypass Git safety checks and forcibly run codemods
	  --dry, -d		Dry run (no changes are made to files)
	  --parser		The parser to use for parsing your source files (babel | babylon | flow)  [babel]

To transform all test files in a directory run tape-to-ava mySrcFolder in your terminal. Only files requiring or importing tape will be transformed. Notice the console output for errors, manual intervention might be required.

As we cannot statically determine if your sequential tape tests are able to run in parallel, all tests are transformed into test.serial. To speed up the AVA test execution you can remove .serial where applicable.

Upgrade AVA version

$ ava-codemods --help

  Usage
    $ ava-codemods [<file|glob> ...]

  Options
    --force, -f    Bypass safety checks and forcibly run codemods

  Available upgrades
    - 0.16.x → 0.17.x
    - 0.13.x → 0.14.x

Simply run ava-codemods in your terminal and answer a few questions. You can pass a filename directly to the CLI. If you do not, you will be prompted for one.

Ensure you have a backup of your tests or commit the latest changes before running this.

Supported codemods

Upgrading to 0.17.x

  • Renaming t.error() to t.ifError()

Upgrading to 0.14.x

  • Renaming t.ok() to t.truthy()
  • Renaming t.notOk() to t.falsy()
  • Renaming t.same() to t.deepEqual()
  • Renaming t.notSame() to t.notDeepEqual()

License

MIT © James Talmage

ava-codemods's People

Contributors

dawsbot avatar doug-wade avatar drewml avatar forresst avatar jamestalmage avatar jfmengels avatar novemberborn avatar platy11 avatar sindresorhus avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.