Enhance "persisted" hook in DAO.updateAttributes

Add `isNewInstance:false` to the context reported by
DAO.updateAttributes()
This commit is contained in:
Miroslav Bajtoš 2015-12-18 15:59:19 +01:00 committed by Amir Jafarian
parent 2f71622e11
commit 5fdd521985
2 changed files with 13 additions and 3 deletions

View File

@ -2548,6 +2548,7 @@ DataAccessObject.prototype.updateAttributes = function updateAttributes(data, op
where: byIdQuery(Model, getIdValue(Model, inst)).where,
data: context.data,
currentInstance: inst,
isNewInstance: false,
hookState: hookState,
options: options
};

View File

@ -1210,7 +1210,8 @@ module.exports = function(dataSource, should) {
id: existingInstance.id,
name: 'changed',
extra: null
}
},
isNewInstance: false
}));
done();
@ -1685,7 +1686,7 @@ module.exports = function(dataSource, should) {
function(err, instance) {
if (err) return done(err);
observedContexts.should.eql(aTestModelCtx({
var expectedContext = aTestModelCtx({
where: { id: existingInstance.id },
data: {
id: existingInstance.id,
@ -1696,7 +1697,15 @@ module.exports = function(dataSource, should) {
name: 'updated name',
extra: undefined
}
}));
});
if (!dataSource.connector.updateOrCreate) {
// When the connector does not provide updateOrCreate,
// DAO falls back to updateAttributes which sets this flag
expectedContext.isNewInstance = false;
}
observedContexts.should.eql(expectedContext);
done();
});
});