diff --git a/lib/dao.js b/lib/dao.js index 1e9f6952..827cdd3e 100644 --- a/lib/dao.js +++ b/lib/dao.js @@ -2556,6 +2556,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 }; diff --git a/test/persistence-hooks.suite.js b/test/persistence-hooks.suite.js index a2881c04..897933d0 100644 --- a/test/persistence-hooks.suite.js +++ b/test/persistence-hooks.suite.js @@ -1212,7 +1212,8 @@ module.exports = function(dataSource, should) { id: existingInstance.id, name: 'changed', extra: null - } + }, + isNewInstance: false })); done(); @@ -1687,7 +1688,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, @@ -1698,7 +1699,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(); }); });