Enable remoting for embedsOne relation
Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
This commit is contained in:
parent
50e1f350aa
commit
19155242c1
|
@ -192,9 +192,12 @@ Model.setup = function () {
|
|||
for (var relationName in relations) {
|
||||
var relation = relations[relationName];
|
||||
if (relation.type === 'belongsTo') {
|
||||
ModelCtor.belongsToRemoting(relationName, relation, define)
|
||||
} else if (relation.type === 'hasOne') {
|
||||
ModelCtor.hasOneRemoting(relationName, relation, define)
|
||||
ModelCtor.belongsToRemoting(relationName, relation, define);
|
||||
} else if (
|
||||
relation.type === 'hasOne' ||
|
||||
relation.type === 'embedsOne'
|
||||
) {
|
||||
ModelCtor.hasOneRemoting(relationName, relation, define);
|
||||
} else if (
|
||||
relation.type === 'hasMany' ||
|
||||
relation.type === 'embedsMany' ||
|
||||
|
|
|
@ -493,6 +493,65 @@ describe('relations - integration', function () {
|
|||
});
|
||||
});
|
||||
|
||||
describe('embedsOne', function() {
|
||||
|
||||
before(function defineGroupAndImageModels() {
|
||||
var group = app.model(
|
||||
'group',
|
||||
{ properties: { name: 'string' },
|
||||
dataSource: 'db',
|
||||
plural: 'groups'
|
||||
}
|
||||
);
|
||||
var image = app.model(
|
||||
'image',
|
||||
{ properties: { url: 'string' }, dataSource: 'db' }
|
||||
);
|
||||
group.embedsOne(image, { as: 'cover' });
|
||||
});
|
||||
|
||||
before(function createImage(done) {
|
||||
var test = this;
|
||||
app.models.group.create({ name: 'Group 1' },
|
||||
function(err, list) {
|
||||
if (err) return done(err);
|
||||
test.group = group;
|
||||
group.image.build({ url: 'http://image.url' });
|
||||
group.save(done);
|
||||
});
|
||||
});
|
||||
|
||||
after(function(done) {
|
||||
this.app.models.group.destroyAll(done);
|
||||
});
|
||||
|
||||
it('includes the embedded models', function(done) {
|
||||
var url = '/api/groups/' + this.group.id;
|
||||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
expect(res.body.name).to.be.equal('Group 1');
|
||||
expect(res.body.imageItem).to.be.eql([
|
||||
{ url: 'http://image.url' }
|
||||
]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('returns the embedded model', function(done) {
|
||||
var url = '/api/groups/' + this.group.id + '/cover';
|
||||
|
||||
this.get(url)
|
||||
.expect(200, function(err, res) {
|
||||
expect(res.body).to.be.eql([
|
||||
{ url: 'http://image.url' },
|
||||
]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('embedsMany', function() {
|
||||
|
||||
before(function defineProductAndCategoryModels() {
|
||||
|
|
Loading…
Reference in New Issue