From ffeb8c099cc3b7f022850c68ad6a7e12e20b9491 Mon Sep 17 00:00:00 2001 From: Alex Alvarez Date: Thu, 21 Dec 2017 00:21:33 -0500 Subject: [PATCH 1/4] blueprints/serializer-test: Add RFC232 variants --- .../tests/unit/__path__/__test__.js | 24 ++++++ node-tests/blueprints/serializer-test.js | 73 ++++++++++++------- node-tests/fixtures/serializer-test/rfc232.js | 24 ++++++ 3 files changed, 93 insertions(+), 28 deletions(-) create mode 100644 blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js create mode 100644 node-tests/fixtures/serializer-test/rfc232.js diff --git a/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js b/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js new file mode 100644 index 00000000000..5a0396de287 --- /dev/null +++ b/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js @@ -0,0 +1,24 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; +import { run } from '@ember/runloop'; + +module('serializer:<%= dasherizedModuleName %>', '<%= friendlyTestDescription %>', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let store = this.owner.lookup('service:store'); + let serializer = this.owner.factoryFor('serializer:<%= dasherizedModuleName %>').create({ store }); + + assert.ok(serializer); + }); + + test('it serializes records', function(assert) { + let store = this.owner.lookup('service:store'); + let record = run(() => store.createRecord('<%= dasherizedModuleName %>', {})); + + let serializedRecord = record.serialize(); + + assert.ok(serializedRecord); + }); +}); diff --git a/node-tests/blueprints/serializer-test.js b/node-tests/blueprints/serializer-test.js index b12dc12a174..76ccf58623c 100644 --- a/node-tests/blueprints/serializer-test.js +++ b/node-tests/blueprints/serializer-test.js @@ -18,25 +18,28 @@ const fixture = require('../helpers/fixture'); describe('Acceptance: generate and destroy serializer blueprints', function() { setupTestHooks(this); + + beforeEach(function() { + return emberNew(); + }); + it('serializer', function() { let args = ['serializer', 'foo']; - return emberNew() - .then(() => emberGenerateDestroy(args, _file => { + return emberGenerateDestroy(args, _file => { expect(_file('app/serializers/foo.js')) .to.contain('import DS from \'ember-data\';') .to.contain('export default DS.JSONAPISerializer.extend('); expect(_file('tests/unit/serializers/foo-test.js')) .to.equal(fixture('serializer-test/foo-default.js')); - })); + }); }); it('serializer extends application serializer if it exists', function() { let args = ['serializer', 'foo']; - return emberNew() - .then(() => emberGenerate(['serializer', 'application'])) + return emberGenerate(['serializer', 'application']) .then(() => emberGenerateDestroy(args, _file => { expect(_file('app/serializers/foo.js')) .to.contain('import ApplicationSerializer from \'./application\';') @@ -50,61 +53,75 @@ describe('Acceptance: generate and destroy serializer blueprints', function() { it('serializer with --base-class', function() { let args = ['serializer', 'foo', '--base-class=bar']; - return emberNew() - .then(() => emberGenerateDestroy(args, _file => { + return emberGenerateDestroy(args, _file => { expect(_file('app/serializers/foo.js')) .to.contain('import BarSerializer from \'./bar\';') .to.contain('export default BarSerializer.extend({'); expect(_file('tests/unit/serializers/foo-test.js')) .to.equal(fixture('serializer-test/foo-default.js')); - })); + }); }); xit('serializer throws when --base-class is same as name', function() { let args = ['serializer', 'foo', '--base-class=foo']; - return emberNew() - .then(() => expect(emberGenerate(args)) - .to.be.rejectedWith(SilentError, /Serializers cannot extend from themself/)); + return expect(emberGenerate(args)) + .to.be.rejectedWith(SilentError, /Serializers cannot extend from themself/); }); it('serializer when is named "application"', function() { let args = ['serializer', 'application']; - return emberNew() - .then(() => emberGenerateDestroy(args, _file => { + return emberGenerateDestroy(args, _file => { expect(_file('app/serializers/application.js')) .to.contain('import DS from \'ember-data\';') .to.contain('export default DS.JSONAPISerializer.extend({'); expect(_file('tests/unit/serializers/application-test.js')) .to.equal(fixture('serializer-test/application-default.js')); - })); + }); }); it('serializer-test', function() { let args = ['serializer-test', 'foo']; - return emberNew() - .then(() => emberGenerateDestroy(args, _file => { + return emberGenerateDestroy(args, _file => { expect(_file('tests/unit/serializers/foo-test.js')) .to.equal(fixture('serializer-test/foo-default.js')); - })); + }); }); - it('serializer-test for mocha v0.12+', function() { - let args = ['serializer-test', 'foo']; + describe('serializer-test with ember-cli-qunit@4.2.0', function() { + beforeEach(function() { + generateFakePackageManifest('ember-cli-qunit', '4.2.0'); + }); - return emberNew() - .then(() => modifyPackages([ - {name: 'ember-cli-qunit', delete: true}, - {name: 'ember-cli-mocha', dev: true} - ])) - .then(() => generateFakePackageManifest('ember-cli-mocha', '0.12.0')) - .then(() => emberGenerateDestroy(args, _file => { + it('serializer-test-test foo', function() { + return emberGenerateDestroy(['serializer-test', 'foo'], _file => { expect(_file('tests/unit/serializers/foo-test.js')) - .to.equal(fixture('serializer-test/foo-mocha-0.12.js')); - })); + .to.equal(fixture('serializer-test/rfc232.js')); + }); + }); + }); + + describe('with ember-cli-mocha v0.12+', function() { + beforeEach(function() { + modifyPackages([ + { name: 'ember-cli-qunit', delete: true }, + { name: 'ember-cli-mocha', dev: true } + ]); + generateFakePackageManifest('ember-cli-mocha', '0.12.0'); + }); + + it('serializer-test for mocha v0.12+', function() { + let args = ['serializer-test', 'foo']; + + return emberGenerateDestroy(args, _file => { + expect(_file('tests/unit/serializers/foo-test.js')) + .to.equal(fixture('serializer-test/foo-mocha-0.12.js')); + }); + }); }); + }); diff --git a/node-tests/fixtures/serializer-test/rfc232.js b/node-tests/fixtures/serializer-test/rfc232.js new file mode 100644 index 00000000000..80bee0a011d --- /dev/null +++ b/node-tests/fixtures/serializer-test/rfc232.js @@ -0,0 +1,24 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; +import { run } from '@ember/runloop'; + +module('serializer:foo', 'Unit | Serializer | foo', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let store = this.owner.lookup('service:store'); + let serializer = this.owner.factoryFor('serializer:foo').create({ store }); + + assert.ok(serializer); + }); + + test('it serializes records', function(assert) { + let store = this.owner.lookup('service:store'); + let record = run(() => store.createRecord('foo', {})); + + let serializedRecord = record.serialize(); + + assert.ok(serializedRecord); + }); +}); From e5443410c3f4dea2019b2803bfbe429ab9034d30 Mon Sep 17 00:00:00 2001 From: Alex Alvarez Date: Thu, 21 Dec 2017 14:34:23 -0500 Subject: [PATCH 2/4] Fixup module arguments --- .../qunit-rfc-232-files/tests/unit/__path__/__test__.js | 2 +- node-tests/fixtures/serializer-test/rfc232.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js b/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js index 5a0396de287..3cbee777af0 100644 --- a/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js +++ b/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js @@ -2,7 +2,7 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; import { run } from '@ember/runloop'; -module('serializer:<%= dasherizedModuleName %>', '<%= friendlyTestDescription %>', function(hooks) { +module('<%= friendlyTestDescription %>', function(hooks) { setupTest(hooks); // Replace this with your real tests. diff --git a/node-tests/fixtures/serializer-test/rfc232.js b/node-tests/fixtures/serializer-test/rfc232.js index 80bee0a011d..3c914973c44 100644 --- a/node-tests/fixtures/serializer-test/rfc232.js +++ b/node-tests/fixtures/serializer-test/rfc232.js @@ -2,7 +2,7 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; import { run } from '@ember/runloop'; -module('serializer:foo', 'Unit | Serializer | foo', function(hooks) { +module('Unit | Serializer | foo', function(hooks) { setupTest(hooks); // Replace this with your real tests. From 15f5bfae6fff5b2148fcd19ccf8e9c546a2b1331 Mon Sep 17 00:00:00 2001 From: Alex Alvarez Date: Mon, 25 Dec 2017 23:18:15 -0500 Subject: [PATCH 3/4] Using store.serializerFor API instead of lookup --- .../qunit-rfc-232-files/tests/unit/__path__/__test__.js | 2 +- node-tests/fixtures/serializer-test/rfc232.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js b/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js index 3cbee777af0..eb18544d2c7 100644 --- a/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js +++ b/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js @@ -8,7 +8,7 @@ module('<%= friendlyTestDescription %>', function(hooks) { // Replace this with your real tests. test('it exists', function(assert) { let store = this.owner.lookup('service:store'); - let serializer = this.owner.factoryFor('serializer:<%= dasherizedModuleName %>').create({ store }); + let serializer = store.serializerFor('serializer:<%= dasherizedModuleName %>'); assert.ok(serializer); }); diff --git a/node-tests/fixtures/serializer-test/rfc232.js b/node-tests/fixtures/serializer-test/rfc232.js index 3c914973c44..eb94a50b2a4 100644 --- a/node-tests/fixtures/serializer-test/rfc232.js +++ b/node-tests/fixtures/serializer-test/rfc232.js @@ -8,7 +8,7 @@ module('Unit | Serializer | foo', function(hooks) { // Replace this with your real tests. test('it exists', function(assert) { let store = this.owner.lookup('service:store'); - let serializer = this.owner.factoryFor('serializer:foo').create({ store }); + let serializer = store.serializerFor('foo'); assert.ok(serializer); }); From abf5cd305701788dbb7d9bf1d9cb8d237eb39cfe Mon Sep 17 00:00:00 2001 From: Alex Alvarez Date: Mon, 25 Dec 2017 23:54:26 -0500 Subject: [PATCH 4/4] fixup test --- .../qunit-rfc-232-files/tests/unit/__path__/__test__.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js b/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js index eb18544d2c7..0a72b125520 100644 --- a/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js +++ b/blueprints/serializer-test/qunit-rfc-232-files/tests/unit/__path__/__test__.js @@ -8,7 +8,7 @@ module('<%= friendlyTestDescription %>', function(hooks) { // Replace this with your real tests. test('it exists', function(assert) { let store = this.owner.lookup('service:store'); - let serializer = store.serializerFor('serializer:<%= dasherizedModuleName %>'); + let serializer = store.serializerFor('<%= dasherizedModuleName %>'); assert.ok(serializer); });