不要怂,就是干,撸起袖子干!

Commit b80aa206 by Sascha Depold

transaction support for Dao#reload

1 parent 3f18dc0b
Showing with 24 additions and 2 deletions
......@@ -229,7 +229,7 @@ module.exports = (function() {
*
* @return {Object} A promise which fires `success`, `error`, `complete` and `sql`.
*/
DAO.prototype.reload = function() {
DAO.prototype.reload = function(options) {
var where = [
this.QueryInterface.quoteIdentifier(this.__factory.tableName) + '.' + this.QueryInterface.quoteIdentifier('id')+'=?',
this.id
......@@ -240,7 +240,7 @@ module.exports = (function() {
where: where,
limit: 1,
include: this.__eagerlyLoadedOptions || []
})
}, options)
.on('sql', function(sql) { emitter.emit('sql', sql) })
.on('error', function(error) { emitter.emit('error', error) })
.on('success', function(obj) {
......
......@@ -526,6 +526,28 @@ describe(Support.getTestDialectTeaser("DAO"), function () {
})
describe('reload', function () {
it('supports transactions', function(done) {
Support.prepareTransactionTest(dialect, this.sequelize, function(sequelize) {
var User = sequelize.define('User', { username: Support.Sequelize.STRING })
User.sync({ force: true }).success(function() {
User.create({ username: 'foo' }).success(function(user) {
sequelize.transaction(function(t) {
User.update({ username: 'bar' }, {}, { transaction: t }).success(function() {
user.reload().success(function(user) {
expect(user.username).to.equal('foo')
user.reload({ transaction: t }).success(function(user) {
expect(user.username).to.equal('bar')
t.rollback().success(function() { done() })
})
})
})
})
})
})
})
})
it("should return a reference to the same DAO instead of creating a new one", function(done) {
this.User.create({ username: 'John Doe' }).complete(function(err, originalUser) {
originalUser.updateAttributes({ username: 'Doe John' }).complete(function() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!