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

Commit 8fd3fdc9 by Sascha Depold

fixed tests for sqlite

1 parent 76c8345d
Showing with 30 additions and 22 deletions
var chai = require('chai')
, expect = chai.expect
, Support = require(__dirname + '/support')
, DataTypes = require(__dirname + "/../lib/data-types")
, dialect = Support.getTestDialect()
, _ = require('lodash')
, Sequelize = require(__dirname + '/../index')
, config = require(__dirname + "/config/config")
, moment = require('moment')
var chai = require('chai')
, expect = chai.expect
, Support = require(__dirname + '/support')
, DataTypes = require(__dirname + "/../lib/data-types")
, dialect = Support.getTestDialect()
, _ = require('lodash')
, Sequelize = require(__dirname + '/../index')
, config = require(__dirname + "/config/config")
, moment = require('moment')
, Transaction = require(__dirname + '/../lib/transaction')
, path = require('path')
chai.Assertion.includeStack = true
......@@ -474,6 +475,13 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
})
describe('transaction', function() {
if (dialect === 'sqlite') {
beforeEach(function() {
this.sequelize.options.storage = path.join(__dirname, 'tmp', 'db.sqlite')
this.sequelize = new Sequelize(this.sequelize.config.datase, null, null, this.sequelize.options)
})
}
it('is a transaction method available', function() {
expect(Support.Sequelize).to.respondTo('transaction')
})
......@@ -507,25 +515,25 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
it("correctly scopes transaction from other connections", function(done) {
var TransactionTest = this.sequelize.define('TransactionTest', { name: DataTypes.STRING }, { timestamps: false })
, self = this
var count = function(transaction, callback) {
var sql = self.sequelize.getQueryInterface().QueryGenerator.selectQuery('TransactionTests', { attributes: [['count(*)', 'cnt']] })
self
.sequelize
.query(sql, null, { plain: true, raw: true, transaction: transaction })
.success(function(result) { callback(result.cnt) })
}
TransactionTest.sync({ force: true }).success(function() {
self.sequelize.transaction(function(t1) {
self.sequelize.query('INSERT INTO ' + qq('TransactionTests') + ' (' + qq('name') + ') VALUES (\'foo\');', null, { plain: true, raw: true, transaction: t1 }).success(function() {
count(null, function(cnt) {
expect(cnt).to.equal(0)
count(t1, function(cnt) {
expect(cnt).to.equal(1)
t1.commit().success(function() {
count(null, function(cnt) {
expect(cnt).to.equal(1)
......@@ -542,16 +550,16 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
it("correctly handles multiple transactions", function(done) {
var TransactionTest = this.sequelize.define('TransactionTest', { name: DataTypes.STRING }, { timestamps: false })
, self = this
var count = function(transaction, callback) {
var sql = self.sequelize.getQueryInterface().QueryGenerator.selectQuery('TransactionTests', { attributes: [['count(*)', 'cnt']] })
self
.sequelize
.query(sql, null, { plain: true, raw: true, transaction: transaction })
.success(function(result) { callback(result.cnt) })
}
TransactionTest.sync({ force: true }).success(function() {
self.sequelize.transaction(function(t1) {
self.sequelize.query('INSERT INTO ' + qq('TransactionTests') + ' (' + qq('name') + ') VALUES (\'foo\');', null, { plain: true, raw: true, transaction: t1 }).success(function() {
......@@ -559,17 +567,17 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
self.sequelize.query('INSERT INTO ' + qq('TransactionTests') + ' (' + qq('name') + ') VALUES (\'bar\');', null, { plain: true, raw: true, transaction: t2 }).success(function() {
count(null, function(cnt) {
expect(cnt).to.equal(0)
count(t1, function(cnt) {
expect(cnt).to.equal(1)
count(t2, function(cnt) {
expect(cnt).to.equal(1)
t2.rollback().success(function() {
count(t2, function(cnt) {
expect(cnt).to.equal(0)
t1.commit().success(function() {
count(null, function(cnt) {
expect(cnt).to.equal(1)
......@@ -589,7 +597,7 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
})
})
}
})
})
})
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!