Git Product home page Git Product logo

ember-mocha-codemods's Introduction

ember-mocha-codemods

Build Status

codemod scripts for ember-mocha

Installation

ember-mocha-codemods itself doesn't need to be installed, but you need to install jscodeshift to run the codemod script:

npm install -g jscodeshift

Usage

You can clone/download this repository or just run the codemods from URL like shown in the following examples:

new-testing-api

Changes your code to use the new testing API introduced in [email protected].

jscodeshift -t https://raw.githubusercontent.com/Turbo87/ember-mocha-codemods/master/new-testing-api.js PATH

Before:

import { expect } from 'chai';
import { it } from 'mocha';
import { describeModule } from 'ember-mocha';

describeModule(
  'route:subscribers',
  'Unit: Route: subscribers',
  {
    needs: ['service:notifications']
  },
  function() {
    it('exists', function() {
      let route = this.subject();
      expect(route).to.be.ok;
    });
  }
);

After:

import { expect } from 'chai';
import { it, describe } from 'mocha';
import { setupTest } from 'ember-mocha';

describe('Unit: Route: subscribers', function() {
  setupTest('route:subscribers', {
    needs: ['service:notifications']
  });

  it('exists', function() {
    let route = this.subject();
    expect(route).to.be.ok;
  });
});

import-it-from-mocha

Changes your code to import it() from mocha directly instead of ember-mocha.

jscodeshift -t https://raw.githubusercontent.com/Turbo87/ember-mocha-codemods/master/import-it-from-mocha.js PATH

Before:

import { it } from 'ember-mocha';

After:

import { it } from 'mocha';

Testing API beginning in 0.14

Changes your code to be compliant with the migration guide found here.

The API beginning in 0.14 introduces many shared helpers and setup across the various types of Ember.js tests. Formerly these types were called: acceptance for application wide concerns, integration for component tests (both rendering and user interaction), and finally unit tests for testing individual units at the lowest level. In the newest API these have been reframed as application tests (formerly acceptance), rendering tests (formerly integration), and unit tests are largely unchanged.

The majority of these changes are to unify test setup and helper usage. A detailed list of the new helper APIs can be found here.

This codemod will follow the migration guide to help you move your test suite from the style defined in 0.9 to the style defined in 0.14.

It is important to review these changes, since there are many different configurations which this codemod attempts to reconcile with the new style you'll still need to review files after running this and make the necessary adjustments. If you notice something that you feel the codemod should handle and doesn't please leave an issue with clearly defined inputs and outputs and an explanation of why you think it should handle this and we'll discuss resolutions.

To begin this code mod:

jscodeshift -t https://raw.githubusercontent.com/Turbo87/ember-mocha-codemods/master/fourteen-testing-api.js PATH

This will do much of what you want, but notably does not handle many of the new helpers from @ember/test-helpers this is because there is another codemod that should also be run which can be found here.

cd my-ember-app-or-addon
npx ember-test-helpers-codemod integration tests/integration
npx ember-test-helpers-codemod acceptance tests/acceptance
npx ember-test-helpers-codemod native-dom tests

License

ember-mocha-codemods is licensed under the MIT License.

ember-mocha-codemods's People

Contributors

dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar eflanagan0 avatar greenkeeper[bot] avatar jbryson3 avatar rondale-sc avatar simonihmig avatar turbo87 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.