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
parent 3028329126
commit fd9bef4aa7
2 changed files with 13 additions and 3 deletions

View File

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

View File

@ -1212,7 +1212,8 @@ module.exports = function(dataSource, should) {
id: existingInstance.id, id: existingInstance.id,
name: 'changed', name: 'changed',
extra: null extra: null
} },
isNewInstance: false
})); }));
done(); done();
@ -1687,7 +1688,7 @@ module.exports = function(dataSource, should) {
function(err, instance) { function(err, instance) {
if (err) return done(err); if (err) return done(err);
observedContexts.should.eql(aTestModelCtx({ var expectedContext = aTestModelCtx({
where: { id: existingInstance.id }, where: { id: existingInstance.id },
data: { data: {
id: existingInstance.id, id: existingInstance.id,
@ -1698,7 +1699,15 @@ module.exports = function(dataSource, should) {
name: 'updated name', name: 'updated name',
extra: undefined 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(); done();
}); });
}); });