Merge pull request #1094 from strongloop/newInstance_loade_updateAttributes

Add 'isNewInstance' for updateAttributes
This commit is contained in:
Amirali Jafarian 2016-09-21 09:23:57 -04:00 committed by GitHub
commit 66f27b9b83
3 changed files with 11 additions and 25 deletions

View File

@ -3090,6 +3090,7 @@ function(data, options, cb) {
data: context.data,
hookState: hookState,
options: options,
isNewInstance: false,
};
Model.notifyObserversOf('loaded', ctx, function(err) {
if (err) return cb(err);

View File

@ -901,6 +901,7 @@ describe('Unoptimized connector', function() {
// disable optimized methods
ds.connector.updateOrCreate = false;
ds.connector.findOrCreate = false;
ds.connector.upsertWithWhere = false;
require('./persistence-hooks.suite')(ds, should, {
replaceOrCreateReportsNewInstance: true,

View File

@ -1360,6 +1360,7 @@ module.exports = function(dataSource, should, connectorCapabilities) {
ctxRecorder.records.should.eql(aCtxForModel(TestModel, {
data: {name: 'changed'},
isNewInstance: false,
}));
done();
@ -2039,8 +2040,6 @@ module.exports = function(dataSource, should, connectorCapabilities) {
{id: existingInstance.id, name: 'updated name'},
function(err, instance) {
if (err) return done(err);
if (dataSource.connector.updateOrCreate) {
ctxRecorder.records.should.eql(aCtxForModel(TestModel, {
data: {
id: existingInstance.id,
@ -2048,16 +2047,6 @@ module.exports = function(dataSource, should, connectorCapabilities) {
},
isNewInstance: false,
}));
} else {
ctxRecorder.records.should.eql(
aCtxForModel(TestModel, {
data: {
id: existingInstance.id,
name: 'updated name',
},
})
);
}
done();
});
});
@ -3267,13 +3256,8 @@ module.exports = function(dataSource, should, connectorCapabilities) {
id: existingInstance.id,
name: 'updated name',
},
isNewInstance: false,
});
// For non-atomic implementation of upsertWithWhere on update, it calls
// updateAttributes. loaded hook of updateAttributes does not provide
// isNewInstance.
if (dataSource.connector.upsertWithWhere) {
expectedContext.isNewInstance = false;
}
ctxRecorder.records.should.eql(aCtxForModel(TestModel, expectedContext));
done();
});