Skip to content

Commit

Permalink
rollback[24c63d6]: Not testing serializers via Pretender
Browse files Browse the repository at this point in the history
  • Loading branch information
benoror committed Oct 1, 2016
1 parent 7031a90 commit 0e25095
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 37 deletions.
10 changes: 6 additions & 4 deletions addon/serializer.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,9 @@ export default DS.RESTSerializer.extend({
// https://github.com/emberjs/data/blob/v2.7.0/addon/serializers/json.js#L1180
let key = relationship.key;
let belongsTo = snapshot.belongsTo(key, { id: true });
key = this.keyForRelationship
? this.keyForRelationship(key, "belongsTo", "serialize") : key;
if(this.keyForRelationship) {
key = this.keyForRelationship(key, "belongsTo", "serialize");
}
json[key] = Ember.isNone(belongsTo) ? [] : [ belongsTo ];
},

Expand All @@ -62,8 +63,9 @@ export default DS.RESTSerializer.extend({
// https://github.com/emberjs/data/blob/v2.7.0/addon/serializers/json.js#L1232
let key = relationship.key;
let hasMany = snapshot.hasMany(key, { ids: true });
key = this.keyForRelationship
? this.keyForRelationship(key, "hasMany", "serialize") : key;
if(this.keyForRelationship) {
key = this.keyForRelationship(key, "hasMany", "serialize");
}
json[key] = Ember.isNone(hasMany) ? [] : hasMany;
}

Expand Down
2 changes: 1 addition & 1 deletion tests/dummy/app/models/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ import DS from 'ember-data';
export default DS.Model.extend({
created: DS.attr('date'),
name: DS.attr('string'),
product: DS.hasMany('product')
product: DS.belongsTo('product')
});
2 changes: 1 addition & 1 deletion tests/dummy/app/routes/new-component.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export default Ember.Route.extend({
saveComponent(component, productId) {
return this.get('store').findRecord('product', productId).then((p) => {
component.set('product', p);
return component.save().then((results) => {
return component.save().then(() => {
return this.transitionTo('products');
}, (error) => {
return console.log('error', error);
Expand Down
2 changes: 1 addition & 1 deletion tests/dummy/app/routes/new-product.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export default Ember.Route.extend({

actions: {
saveProduct(product) {
return product.save().then((results) => {
return product.save().then(() => {
//return this.transitionTo('products');
}, (error) => {
console.log('error', error);
Expand Down
64 changes: 34 additions & 30 deletions tests/unit/serializers/component-test.js
Original file line number Diff line number Diff line change
@@ -1,54 +1,58 @@
import Ember from 'ember';
import { moduleForModel, test } from 'ember-qunit';
import Pretender from 'pretender';
//import Pretender from 'pretender';

// ToDo: Install ember-cli-faker
import mocks from './mocks';
const { productMock } = mocks;
//// ToDo: Install ember-cli-faker
//import mocks from './mocks';
//const { productMock } = mocks;

moduleForModel('component', 'Unit | Serializer | component', {
needs: ['serializer:application',
'model:product',
'model:inventory',
'model:component'],

beforeEach() {
this.mockServer = new Pretender(function() {
this.post('/components', function() {
const response = {
records: [productMock]
};
return [200, { "Content-Type": "application/json" }, JSON.stringify(response)];
});
});
},
//beforeEach() {
//this.mockServer = new Pretender(function() {
//this.post('/components', function() {
//const response = {
//records: [productMock]
//};
//return [200, { "Content-Type": "application/json" }, JSON.stringify(response)];
//});
//});
//},

afterEach() {
this.mockServer.shutdown();
}
//afterEach() {
//this.mockServer.shutdown();
//}
});

test('it serializes belongsTo', function(assert) {
//let component = this.subject('component', {
//name: 'testComponent'
//});
let store = this.store();

Ember.run(() => {
let component = store.createRecord('component', {
name: 'testComponent'
});
//let product = store.createRecord('product', {
//name: 'testProduct'
//});
//component.set('product', product);

component.save().then(() => {
let [ request ] = this.mockServer.handledRequests;
let requestPayload = JSON.parse(request.requestBody);
assert.deepEqual(requestPayload, {
cats: [
{ name: 'Frisky' }
]
});
let product = store.createRecord('product', {
name: 'testProduct'
});
component.set('product', product);

let serializedRecord = component.serialize();
assert.ok(serializedRecord);
//component.save().then(() => {
//let [ request ] = this.mockServer.handledRequests;
//let requestPayload = JSON.parse(request.requestBody);
//assert.deepEqual(requestPayload, {
//name: 'testComponent',
//product: ['']
//});
//});
});
});

0 comments on commit 0e25095

Please sign in to comment.