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

Commit 073f1777 by Jan Aagaard Meier

Merge pull request #3841 from BridgeAR/racy-test

Fix racy tests
2 parents a3fa52cd d996aa92
'use strict';
var Support = require('../support');
before(function() {
var dialect = Support.getTestDialect();
if (dialect !== 'postgres' && dialect !== 'postgres-native') {
return;
}
return Support.sequelize.query('CREATE EXTENSION IF NOT EXISTS hstore', {raw: true});
});
var Support = require('../support')
, dialect = Support.getTestDialect();
before(function() {
var dialect = Support.getTestDialect();
if (dialect !== 'postgres' && dialect !== 'postgres-native') {
return;
}
return Support.sequelize.query('CREATE EXTENSION IF NOT EXISTS btree_gist', {raw: true});
return Support.sequelize.Promise.all([
Support.sequelize.query('CREATE EXTENSION IF NOT EXISTS hstore', {raw: true}),
Support.sequelize.query('CREATE EXTENSION IF NOT EXISTS btree_gist', {raw: true})
]);
});
beforeEach(function() {
......
......@@ -33,7 +33,7 @@ if (dialect !== 'sqlite') {
this.sequelize.query(query, { type: this.sequelize.QueryTypes.SELECT }),
this.sequelizeWithTimezone.query(query, { type: this.sequelize.QueryTypes.SELECT })
]).spread(function(now1, now2) {
var elapsedQueryTime = (Date.now() - startQueryTime) + 20;
var elapsedQueryTime = (Date.now() - startQueryTime) + 1001;
expect(now1[0].now.getTime()).to.be.closeTo(now2[0].now.getTime(), elapsedQueryTime);
});
});
......
......@@ -13,7 +13,7 @@ var chai = require('chai')
if (current.dialect.supports.transactions) {
describe(Support.getTestDialectTeaser('Transaction'), function() {
this.timeout(4000);
this.timeout(5000);
describe('constructor', function() {
it('stores options', function() {
var transaction = new Transaction(this.sequelize);
......@@ -90,9 +90,18 @@ describe(Support.getTestDialectTeaser('Transaction'), function() {
});
}
, self = this;
// Attention: this test is a bit racy. If you find a nicer way to test this: go ahead
return SumSumSum.sync({force: true}).then(function () {
return (expect(Promise.join(transTest(80), transTest(80))).to.eventually.be.rejectedWith('could not serialize access due to read/write dependencies among transactions'));
return (expect(Promise.join(transTest(80), transTest(80), transTest(80))).to.eventually.be.rejectedWith('could not serialize access due to read/write dependencies among transactions'));
}).delay(100).then(function() {
if (self.sequelize.test.$runningQueries !== 0) {
return self.sequelize.Promise.delay(200);
}
return void 0;
}).then(function() {
if (self.sequelize.test.$runningQueries !== 0) {
return self.sequelize.Promise.delay(500);
}
});
});
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!