Merge branch 'fabien-fix/issue-242'
This commit is contained in:
commit
b8a6183a2a
|
@ -131,6 +131,8 @@ ModelBaseClass.prototype._initProperties = function (data, options) {
|
||||||
self.__data[p] = propVal;
|
self.__data[p] = propVal;
|
||||||
}
|
}
|
||||||
} else if (ctor.relations[p]) {
|
} else if (ctor.relations[p]) {
|
||||||
|
var relationType = ctor.relations[p].type;
|
||||||
|
|
||||||
if (!properties[p]) {
|
if (!properties[p]) {
|
||||||
var modelTo = ctor.relations[p].modelTo || ModelBaseClass;
|
var modelTo = ctor.relations[p].modelTo || ModelBaseClass;
|
||||||
var multiple = ctor.relations[p].multiple;
|
var multiple = ctor.relations[p].multiple;
|
||||||
|
@ -141,11 +143,9 @@ ModelBaseClass.prototype._initProperties = function (data, options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Relation
|
// Relation
|
||||||
if (ctor.relations[p].type === 'belongsTo' && propVal != null) {
|
if (relationType === 'belongsTo' && propVal != null) {
|
||||||
// If the related model is populated
|
// If the related model is populated
|
||||||
self.__data[ctor.relations[p].keyFrom] = propVal[ctor.relations[p].keyTo];
|
self.__data[ctor.relations[p].keyFrom] = propVal[ctor.relations[p].keyTo];
|
||||||
} else if (!self.__data[p] && propVal != null) {
|
|
||||||
self.__data[p] = propVal;
|
|
||||||
}
|
}
|
||||||
self.__cachedRelations[p] = propVal;
|
self.__cachedRelations[p] = propVal;
|
||||||
} else {
|
} else {
|
||||||
|
@ -163,7 +163,6 @@ ModelBaseClass.prototype._initProperties = function (data, options) {
|
||||||
|
|
||||||
for (k = 0; k < size; k++) {
|
for (k = 0; k < size; k++) {
|
||||||
p = keys[k];
|
p = keys[k];
|
||||||
// var prop
|
|
||||||
propVal = self.__data[p];
|
propVal = self.__data[p];
|
||||||
|
|
||||||
// Set default values
|
// Set default values
|
||||||
|
|
|
@ -186,6 +186,27 @@ describe('relations', function () {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should check ignore related data on creation - array', function (done) {
|
||||||
|
Book.create({ chapters: [] }, function (err, book) {
|
||||||
|
should.not.exist(err);
|
||||||
|
book.chapters.should.be.a.function;
|
||||||
|
var obj = book.toObject();
|
||||||
|
should.not.exist(obj.chapters);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should check ignore related data on creation - object', function (done) {
|
||||||
|
Book.create({ chapters: {} }, function (err, book) {
|
||||||
|
should.not.exist(err);
|
||||||
|
book.chapters.should.be.a.function;
|
||||||
|
var obj = book.toObject();
|
||||||
|
should.not.exist(obj.chapters);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('hasMany through', function () {
|
describe('hasMany through', function () {
|
||||||
|
@ -1898,6 +1919,31 @@ describe('relations', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should create embedded from attributes - property name', function(done) {
|
||||||
|
var addresses = [
|
||||||
|
{id: 'home', street: 'Home Street'},
|
||||||
|
{id: 'work', street: 'Work Street'}
|
||||||
|
];
|
||||||
|
Person.create({name: 'Wilma', addresses: addresses}, function(err, p) {
|
||||||
|
should.not.exist(err);
|
||||||
|
p.addressList.at(0).id.should.equal('home');
|
||||||
|
p.addressList.at(1).id.should.equal('work');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not create embedded from attributes - relation name', function(done) {
|
||||||
|
var addresses = [
|
||||||
|
{id: 'home', street: 'Home Street'},
|
||||||
|
{id: 'work', street: 'Work Street'}
|
||||||
|
];
|
||||||
|
Person.create({name: 'Wilma', addressList: addresses}, function(err, p) {
|
||||||
|
should.not.exist(err);
|
||||||
|
p.addresses.should.have.length(0);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('embedsMany - relations, scope and properties', function () {
|
describe('embedsMany - relations, scope and properties', function () {
|
||||||
|
|
Loading…
Reference in New Issue