var loopback = require('../'); var request = require('supertest'); describe('remoting coercion', function() { it('should coerce arguments based on the type', function(done) { var called = false; var app = loopback(); app.use(loopback.rest()); var TestModel = app.model('TestModel', {base: 'Model', dataSource: null, public: true}); TestModel.test = function(inst, cb) { called = true; assert(inst instanceof TestModel); assert(inst.foo === 'bar'); cb(); }; TestModel.remoteMethod('test', { accepts: {arg: 'inst', type: 'TestModel', http: {source: 'body'}}, http: {path: '/test', verb: 'post'} }); request(app) .post('/TestModels/test') .set('Content-Type', 'application/json') .send({ foo: 'bar' }) .end(function(err) { if (err) return done(err); assert(called); done(); }); }); });