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

Commit 49c809b0 by Sascha Depold

long running transaction test

1 parent 8d969d2e
Showing with 59 additions and 0 deletions
......@@ -18,6 +18,65 @@ describe(Support.getTestDialectTeaser("Sequelize#transaction"), function () {
.transaction(function(t) { t.rollback() })
.success(function() { done() })
})
it('works for long running transactions', function(done) {
Support.prepareTransactionTest(this.sequelize, function(sequelize) {
var User = sequelize.define('User', {
name: Support.Sequelize.STRING
}, { timestamps: false })
sequelize.sync({ force: true }).success(function() {
sequelize
.transaction(function(t) {
var query = 'select sleep(2);'
switch(Support.getTestDialect()) {
case 'postgres':
query = 'select pg_sleep(2);'
break
case 'sqlite':
query = 'select sqlite3_sleep(2);'
break
default:
break
}
sequelize.query(query, null, {
raw: true,
plain: true,
transaction: t
}).done(function() {
var dao = User.build({ name: 'foo' })
// this.QueryGenerator.insertQuery(tableName, values, dao.daoFactory.rawAttributes)
query = sequelize
.getQueryInterface()
.QueryGenerator
.insertQuery(User.tableName, dao.values, User.rawAttributes)
setTimeout(function() {
sequelize.query(query, null, {
raw: true,
plain: true,
transaction: t
}).done(function(err, res) {
t.commit()
})
}, 2000)
})
})
.success(function() {
User.all().success(function(users) {
expect(users.length).to.equal(1)
expect(users[0].name).to.equal('foo')
done()
})
})
})
})
})
})
describe('error', function() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!