diff --git a/blueprints/adapter-test/mocha-0.12-files/tests/unit/__path__/__test__.js b/blueprints/adapter-test/mocha-0.12-files/tests/unit/__path__/__test__.js new file mode 100644 index 00000000000..1eb97b0b43a --- /dev/null +++ b/blueprints/adapter-test/mocha-0.12-files/tests/unit/__path__/__test__.js @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { describe, it } from 'mocha'; +import { setupTest } from 'ember-mocha'; + +describe('<%= friendlyTestDescription %>', function() { + setupTest('adapter:<%= dasherizedModuleName %>', { + // Specify the other units that are required for this test. + // needs: ['serializer:foo'] + }); + + // Replace this with your real tests. + it('exists', function() { + let adapter = this.subject(); + expect(adapter).to.be.ok; + }); +}); diff --git a/blueprints/model-test/mocha-0.12-files/tests/unit/__path__/__test__.js b/blueprints/model-test/mocha-0.12-files/tests/unit/__path__/__test__.js new file mode 100644 index 00000000000..6850a578f78 --- /dev/null +++ b/blueprints/model-test/mocha-0.12-files/tests/unit/__path__/__test__.js @@ -0,0 +1,17 @@ +import { expect } from 'chai'; +import { describe, it } from 'mocha'; +import { setupModelTest } from 'ember-mocha'; + +describe('<%= friendlyDescription %>', function() { + setupModelTest('<%= dasherizedModuleName %>', { + // Specify the other units that are required for this test. + <%= typeof needs !== 'undefined' ? needs : '' %> + }); + + // Replace this with your real tests. + it('exists', function() { + let model = this.subject(); + // var store = this.store(); + expect(model).to.be.ok; + }); +}); diff --git a/blueprints/serializer-test/mocha-0.12-files/tests/unit/__path__/__test__.js b/blueprints/serializer-test/mocha-0.12-files/tests/unit/__path__/__test__.js new file mode 100644 index 00000000000..fd852a5e0d9 --- /dev/null +++ b/blueprints/serializer-test/mocha-0.12-files/tests/unit/__path__/__test__.js @@ -0,0 +1,19 @@ +import { expect } from 'chai'; +import { describe, it } from 'mocha'; +import { setupModelTest } from 'ember-mocha'; + +describe('<%= friendlyTestDescription %>', function() { + setupModelTest('<%= dasherizedModuleName %>', { + // Specify the other units that are required for this test. + needs: ['serializer:<%= dasherizedModuleName %>'] + }); + + // Replace this with your real tests. + it('serializes records', function() { + let record = this.subject(); + + let serializedRecord = record.serialize(); + + expect(serializedRecord).to.be.ok; + }); +}); diff --git a/blueprints/test-framework-detector.js b/blueprints/test-framework-detector.js index 8f04dca3a60..30c5601eae3 100644 --- a/blueprints/test-framework-detector.js +++ b/blueprints/test-framework-detector.js @@ -1,4 +1,6 @@ +var fs = require('fs'); var path = require('path'); +var semver = require('semver'); module.exports = function(blueprint) { blueprint.supportsAddon = function() { @@ -12,7 +14,12 @@ module.exports = function(blueprint) { if ('ember-cli-qunit' in dependencies) { type = 'qunit'; } else if ('ember-cli-mocha' in dependencies) { - type = 'mocha'; + if (fs.existsSync(this.path + '/mocha-0.12-files') && + semver.satisfies('0.12.0', dependencies['ember-cli-mocha'])) { + type = 'mocha-0.12'; + } else { + type = 'mocha'; + } } else { this.ui.writeLine('Couldn\'t determine test style - using QUnit'); type = 'qunit'; diff --git a/blueprints/transform-test/mocha-0.12-files/tests/unit/__path__/__test__.js b/blueprints/transform-test/mocha-0.12-files/tests/unit/__path__/__test__.js new file mode 100644 index 00000000000..fcbe57e5eed --- /dev/null +++ b/blueprints/transform-test/mocha-0.12-files/tests/unit/__path__/__test__.js @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { describe, it } from 'mocha'; +import { setupTest } from 'ember-mocha'; + +describe('<%= friendlyTestDescription %>', function() { + setupTest('transform:<%= dasherizedModuleName %>', { + // Specify the other units that are required for this test. + // needs: ['transform:foo'] + }); + + // Replace this with your real tests. + it('exists', function() { + let transform = this.subject(); + expect(transform).to.be.ok; + }); +}); diff --git a/node-tests/blueprints/adapter-test.js b/node-tests/blueprints/adapter-test.js index 699abfa1454..72332f6e1d0 100644 --- a/node-tests/blueprints/adapter-test.js +++ b/node-tests/blueprints/adapter-test.js @@ -94,7 +94,7 @@ describe('Acceptance: generate and destroy adapter blueprints', function() { return emberNew() .then(() => modifyPackages([ {name: 'ember-cli-qunit', delete: true}, - {name: 'ember-cli-mocha', dev: true} + {name: 'ember-cli-mocha', version: '0.11.0', dev: true} ])) .then(() => emberGenerateDestroy(args, _file => { expect(_file('tests/unit/adapters/foo-test.js')) @@ -103,4 +103,22 @@ describe('Acceptance: generate and destroy adapter blueprints', function() { .to.contain('expect(adapter).to.be.ok;'); })); }); + + it('adapter-test for mocha v0.12+', function() { + var args = ['adapter-test', 'foo']; + + return emberNew() + .then(() => modifyPackages([ + {name: 'ember-cli-qunit', delete: true}, + {name: 'ember-cli-mocha', version: '0.12.0', dev: true} + ])) + .then(() => emberGenerateDestroy(args, _file => { + expect(_file('tests/unit/adapters/foo-test.js')) + .to.contain('import { describe, it } from \'mocha\';') + .to.contain('import { setupTest } from \'ember-mocha\';') + .to.contain('describe(\'Unit | Adapter | foo\', function() {') + .to.contain('setupTest(\'adapter:foo\',') + .to.contain('expect(adapter).to.be.ok;'); + })); + }); }); diff --git a/node-tests/blueprints/model-test.js b/node-tests/blueprints/model-test.js index 70e046f9517..39ebf43e4e6 100644 --- a/node-tests/blueprints/model-test.js +++ b/node-tests/blueprints/model-test.js @@ -107,7 +107,7 @@ describe('Acceptance: generate and destroy model blueprints', function() { return emberNew() .then(() => modifyPackages([ {name: 'ember-cli-qunit', delete: true}, - {name: 'ember-cli-mocha', dev: true} + {name: 'ember-cli-mocha', version: '0.11.0', dev: true} ])) .then(() => emberGenerateDestroy(args, _file => { expect(_file('tests/unit/models/foo-test.js')) @@ -116,4 +116,22 @@ describe('Acceptance: generate and destroy model blueprints', function() { .to.contain('expect(model).to.be.ok;'); })); }); + + it('model-test for mocha v0.12+', function() { + var args = ['model-test', 'foo']; + + return emberNew() + .then(() => modifyPackages([ + {name: 'ember-cli-qunit', delete: true}, + {name: 'ember-cli-mocha', version: '0.12.0', dev: true} + ])) + .then(() => emberGenerateDestroy(args, _file => { + expect(_file('tests/unit/models/foo-test.js')) + .to.contain('import { describe, it } from \'mocha\';') + .to.contain('import { setupModelTest } from \'ember-mocha\';') + .to.contain('describe(\'Unit | Model | foo\', function() {') + .to.contain('setupModelTest(\'foo\',') + .to.contain('expect(model).to.be.ok;'); + })); + }); }); diff --git a/node-tests/blueprints/serializer-test.js b/node-tests/blueprints/serializer-test.js index b7eb757e527..8c2e48e9a0e 100644 --- a/node-tests/blueprints/serializer-test.js +++ b/node-tests/blueprints/serializer-test.js @@ -94,7 +94,7 @@ describe('Acceptance: generate and destroy serializer blueprints', function() { return emberNew() .then(() => modifyPackages([ {name: 'ember-cli-qunit', delete: true}, - {name: 'ember-cli-mocha', dev: true} + {name: 'ember-cli-mocha', version: '0.11.0', dev: true} ])) .then(() => emberGenerateDestroy(args, _file => { expect(_file('tests/unit/serializers/foo-test.js')) @@ -105,4 +105,23 @@ describe('Acceptance: generate and destroy serializer blueprints', function() { .to.contain('expect(serializedRecord).to.be.ok;'); })); }); + + it('serializer-test for mocha v0.12+', function() { + var args = ['serializer-test', 'foo']; + + return emberNew() + .then(() => modifyPackages([ + {name: 'ember-cli-qunit', delete: true}, + {name: 'ember-cli-mocha', version: '0.12.0', dev: true} + ])) + .then(() => emberGenerateDestroy(args, _file => { + expect(_file('tests/unit/serializers/foo-test.js')) + .to.contain('import { describe, it } from \'mocha\';') + .to.contain('import { setupModelTest } from \'ember-mocha\';') + .to.contain('describe(\'Unit | Serializer | foo\', function() {') + .to.contain('setupModelTest(\'foo\', {') + .to.contain('needs: [\'serializer:foo\']') + .to.contain('expect(serializedRecord).to.be.ok;'); + })); + }); }); diff --git a/node-tests/blueprints/transform-test.js b/node-tests/blueprints/transform-test.js index cebe88093b6..6819275ce04 100644 --- a/node-tests/blueprints/transform-test.js +++ b/node-tests/blueprints/transform-test.js @@ -42,7 +42,7 @@ describe('Acceptance: generate and destroy transform blueprints', function() { return emberNew() .then(() => modifyPackages([ {name: 'ember-cli-qunit', delete: true}, - {name: 'ember-cli-mocha', dev: true} + {name: 'ember-cli-mocha', version: '0.11.0', dev: true} ])) .then(() => emberGenerateDestroy(args, _file => { expect(_file('tests/unit/transforms/foo-test.js')) @@ -51,4 +51,22 @@ describe('Acceptance: generate and destroy transform blueprints', function() { .to.contain('expect(transform).to.be.ok;'); })); }); + + it('transform-test for mocha v0.12+', function() { + var args = ['transform-test', 'foo']; + + return emberNew() + .then(() => modifyPackages([ + {name: 'ember-cli-qunit', delete: true}, + {name: 'ember-cli-mocha', version: '0.12.0', dev: true} + ])) + .then(() => emberGenerateDestroy(args, _file => { + expect(_file('tests/unit/transforms/foo-test.js')) + .to.contain('import { describe, it } from \'mocha\';') + .to.contain('import { setupTest } from \'ember-mocha\';') + .to.contain('describe(\'Unit | Transform | foo\', function() {') + .to.contain('setupTest(\'transform:foo\',') + .to.contain('expect(transform).to.be.ok;'); + })); + }); });