@GCorbel wrote:
Hi,
I want a service that converts objects in json. For now, have this test :
/* jshint expr:true */ import Ember from 'ember'; import { expect } from 'chai'; import { describeModule, it } from 'ember-mocha'; import startApp from '../../helpers/start-app'; var app, container, store; describeModule( 'service:create-subscriptions', 'CreateSubscriptionsService', { needs: [] }, function() { before(function() { app = startApp(); container = app.__container__; store = container.lookup('service:store'); }), it('returns items in json format', function() { let service = this.subject(); var subscription = store.createRecord('subscription', {email: 'test@test.com'}); service.items.pushObject(subscription); var result = service.toJSON(); expect(result[0].email).to.equal('test@test.com'); }); } );
And this service :
import Ember from 'ember'; export default Ember.Service.extend({ items: [], toJSON: function() { return this.get('items').map((item) => { return item.toJSON(); }); } });
It works but I'm uncomfortable with my code because I have to lookup for the store and it seems to be a hack.
I saw on the Internet than it's better to use
Ember.Object.create
but it returns an object withouttoJSON
method. I can stub it but I will not be confident in the behavior my method.What's the best solution ?
Posts: 1
Participants: 1