codemod scripts for ember-mocha
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
You can clone/download this repository or just run the codemods from URL like shown in the following examples:
Changes your code to use the new testing API
introduced in ember-mocha@0.9.0
.
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;
});
});
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';
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
ember-mocha-codemods is licensed under the MIT License.