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

Commit 66ccf6b9 by Daniel Durante

Cleaned up BusterJS even more, hopefully this will fix most of the problems.

1 parent ea264aba
...@@ -377,7 +377,7 @@ module.exports = (function() { ...@@ -377,7 +377,7 @@ module.exports = (function() {
}, options || {}) }, options || {})
return Utils._.compact([ return Utils._.compact([
"CREATE", options.indicesType, "INDEX IF NOT EXISTS", options.indexName, "CREATE", options.indicesType, "INDEX", options.indexName,
(options.indexType ? ('USING ' + options.indexType) : undefined), (options.indexType ? ('USING ' + options.indexType) : undefined),
"ON", tableName, '(' + transformedAttributes.join(', ') + ')', "ON", tableName, '(' + transformedAttributes.join(', ') + ')',
(options.parser ? "WITH PARSER " + options.parser : undefined) (options.parser ? "WITH PARSER " + options.parser : undefined)
......
...@@ -8,9 +8,9 @@ var buster = require("buster") ...@@ -8,9 +8,9 @@ var buster = require("buster")
buster.spec.expose() buster.spec.expose()
buster.testRunner.timeout = 1000 buster.testRunner.timeout = 1000
var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
describe(Helpers.getTestDialectTeaser("BelongsTo"), function() { describe(Helpers.getTestDialectTeaser("BelongsTo"), function() {
var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
before(function(done) { before(function(done) {
this.sequelize = sequelize this.sequelize = sequelize
Helpers.clearDatabase(this.sequelize, done) Helpers.clearDatabase(this.sequelize, done)
......
...@@ -9,9 +9,9 @@ var buster = require("buster") ...@@ -9,9 +9,9 @@ var buster = require("buster")
buster.spec.expose() buster.spec.expose()
buster.testRunner.timeout = 1000 buster.testRunner.timeout = 1000
var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
describe(Helpers.getTestDialectTeaser("HasMany"), function() { describe(Helpers.getTestDialectTeaser("HasMany"), function() {
var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
before(function(done) { before(function(done) {
var self = this var self = this
self.sequelize = sequelize self.sequelize = sequelize
...@@ -20,57 +20,61 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() { ...@@ -20,57 +20,61 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() {
describe('general usage', function() { describe('general usage', function() {
before(function(done) { before(function(done) {
this.User = this.sequelize.define('User', { username: Helpers.Sequelize.STRING }) var self = this
this.Task = this.sequelize.define('Task', { title: Helpers.Sequelize.STRING }) self.User = self.sequelize.define('User', { username: Helpers.Sequelize.STRING })
this.sequelize.sync({ force: true }).success(done) self.Task = self.sequelize.define('Task', { title: Helpers.Sequelize.STRING })
self.User.sync({ force: true }).success(function() {
self.Task.sync({ force: true }).success(done)
})
}) })
describe('mono-directional', function() { describe('mono-directional', function() {
it("adds the foreign key", function(done) { it("adds the foreign key", function() {
this.User.hasMany(this.Task) var self = this
expect(this.Task.attributes.UserId).toEqual("INTEGER") self.User.hasMany(self.Task)
done() expect(self.Task.attributes.UserId).toEqual("INTEGER")
}) })
it('adds the foreign key with underscore', function(done) { it('adds the foreign key with underscore', function() {
var User = this.sequelize.define('User', { username: Helpers.Sequelize.STRING }) var self = this
, Task = this.sequelize.define('Task', { title: Helpers.Sequelize.STRING }, { underscored: true }) , User = self.sequelize.define('User', { username: Helpers.Sequelize.STRING })
, Task = self.sequelize.define('Task', { title: Helpers.Sequelize.STRING }, { underscored: true })
Task.hasMany(User) Task.hasMany(User)
expect(User.attributes.task_id).toBeDefined() expect(User.attributes.task_id).toBeDefined()
done()
}) })
it('uses the passed foreign key', function(done) { it('uses the passed foreign key', function() {
this.User.hasMany(this.Task, { foreignKey: 'person_id' }) var self = this
expect(this.Task.attributes.person_id).toEqual("INTEGER") self.User.hasMany(self.Task, { foreignKey: 'person_id' })
done() expect(self.Task.attributes.person_id).toEqual("INTEGER")
}) })
it('defines getters and setters', function(done) { it('defines getters and setters', function() {
this.User.hasMany(this.Task) var self = this
self.User.hasMany(self.Task)
var u = this.User.build({username: 'asd'}) var u = self.User.build({username: 'asd'})
expect(u.setTasks).toBeDefined() expect(u.setTasks).toBeDefined()
expect(u.getTasks).toBeDefined() expect(u.getTasks).toBeDefined()
done()
}) })
it("defines getters and setters according to the 'as' option", function(done) { it("defines getters and setters according to the 'as' option", function() {
this.User.hasMany(this.Task, {as: 'Tasks'}) var self = this
var u = this.User.build({username: 'asd'}) self.User.hasMany(self.Task, {as: 'Tasks'})
var u = self.User.build({username: 'asd'})
expect(u.setTasks).toBeDefined() expect(u.setTasks).toBeDefined()
expect(u.getTasks).toBeDefined() expect(u.getTasks).toBeDefined()
done()
}) })
it("sets and gets associated objects", function(done) { it("sets and gets associated objects", function(done) {
var self = this var self = this
this.User.hasMany(this.Task, { as: 'Tasks' }) self.User.hasMany(self.Task, { as: 'Tasks' })
this.sequelize.sync({ force: true }).success(function() { self.User.sync({ force: true }).success(function() {
self.Task.sync({ force: true }).success(function() {
self.User.create({username: 'name'}).success(function(user) { self.User.create({username: 'name'}).success(function(user) {
self.Task.create({title: 'task1'}).success(function(task1) { self.Task.create({title: 'task1'}).success(function(task1) {
self.Task.create({title: 'task2'}).success(function(task2) { self.Task.create({title: 'task2'}).success(function(task2) {
...@@ -90,17 +94,19 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() { ...@@ -90,17 +94,19 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() {
}) })
}) })
}) })
})
it("should allow selfAssociation to be single linked (only one DAO is created)", function(done) { it("should allow selfAssociation to be single linked (only one DAO is created)", function(done) {
var oldLength = this.sequelize.daoFactoryManager.daos.length var self = this
, Comment = this.sequelize.define('Comment', { content: Helpers.Sequelize.STRING }) , oldLength = self.sequelize.daoFactoryManager.daos.length
, Comment = self.sequelize.define('Comment', { content: Helpers.Sequelize.STRING })
Comment.belongsTo(Comment, {as: "Parent"}); Comment.belongsTo(Comment, {as: "Parent"});
Comment.hasMany(Comment, {as: 'Children', foreignKey: "ParentId", useJunctionTable: false}) Comment.hasMany(Comment, {as: 'Children', foreignKey: "ParentId", useJunctionTable: false})
expect(this.sequelize.daoFactoryManager.daos.length).toEqual(oldLength + 1) expect(self.sequelize.daoFactoryManager.daos.length).toEqual(oldLength + 1)
Comment.sync({force: true}).success(function() { self.sequelize.sync({ force: true }).success(function() {
Comment.create({ content: 'parentComment' }).success(function(parent) { Comment.create({ content: 'parentComment' }).success(function(parent) {
Comment.create({ content: 'child1' }).success(function(child1) { Comment.create({ content: 'child1' }).success(function(child1) {
child1.setParent(parent).success(function() { child1.setParent(parent).success(function() {
...@@ -120,19 +126,19 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() { ...@@ -120,19 +126,19 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() {
}) })
}) })
it("should still use many to many for selfAssociation by default (two DAOs are created)", function(done) { it("should still use many to many for selfAssociation by default (two DAOs are created)", function() {
var oldLength = this.sequelize.daoFactoryManager.daos.length var self = this
, Comment = this.sequelize.define('Comment', { content: Sequelize.STRING }) , oldLength = self.sequelize.daoFactoryManager.daos.length
, Comment = self.sequelize.define('Comment', { content: Sequelize.STRING })
Comment.belongsTo(Comment, {as: "Parent"}) Comment.belongsTo(Comment, {as: "Parent"})
Comment.hasMany(Comment, {as: 'Children'}) Comment.hasMany(Comment, {as: 'Children'})
expect(this.sequelize.daoFactoryManager.daos.length).toEqual(oldLength + 2) expect(self.sequelize.daoFactoryManager.daos.length).toEqual(oldLength + 2)
done();
}) })
describe('bi-directional', function() { describe('bi-directional', function() {
it('adds the foreign key', function(done) { it('adds the foreign key', function() {
var self = this var self = this
this.Task.hasMany(this.User) this.Task.hasMany(this.User)
...@@ -149,7 +155,6 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() { ...@@ -149,7 +155,6 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() {
expect(dao.attributes.UserId).toBeDefined() expect(dao.attributes.UserId).toBeDefined()
expect(dao.attributes.TaskId).toBeDefined() expect(dao.attributes.TaskId).toBeDefined()
}) })
done()
}) })
it("adds the foreign key with underscores", function(done) { it("adds the foreign key with underscores", function(done) {
...@@ -340,7 +345,8 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() { ...@@ -340,7 +345,8 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() {
}) })
it("gets and sets the connector daos", function(done) { it("gets and sets the connector daos", function(done) {
var Person = this.sequelize.define('Person', { name: Helpers.Sequelize.STRING }) var self = this
, Person = self.sequelize.define('Person', { name: Helpers.Sequelize.STRING })
Person.hasMany(Person, {as: 'Children'}) Person.hasMany(Person, {as: 'Children'})
Person.hasMany(Person, {as: 'Friends'}) Person.hasMany(Person, {as: 'Friends'})
...@@ -531,12 +537,13 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() { ...@@ -531,12 +537,13 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() {
before(function(done) { before(function(done) {
var self = this var self = this
this.User = this.sequelize.define('User', { username: Sequelize.STRING }) self.User = self.sequelize.define('User', { username: Sequelize.STRING })
this.Task = this.sequelize.define('Task', { title: Sequelize.STRING, active: Sequelize.BOOLEAN }) self.Task = self.sequelize.define('Task', { title: Sequelize.STRING, active: Sequelize.BOOLEAN })
this.User.hasMany(self.Task) self.User.hasMany(self.Task)
this.sequelize.sync({ force: true }).done(function() { self.User.sync({ force: true }).done(function() {
self.Task.sync({ force: true }).success(function() {
var chainer = new Sequelize.Utils.QueryChainer([ var chainer = new Sequelize.Utils.QueryChainer([
self.User.create({ username: 'John'}), self.User.create({ username: 'John'}),
self.Task.create({ title: 'Get rich', active: true}), self.Task.create({ title: 'Get rich', active: true}),
...@@ -548,6 +555,7 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() { ...@@ -548,6 +555,7 @@ describe(Helpers.getTestDialectTeaser("HasMany"), function() {
}) })
}) })
}) })
})
it('should treat the where object of associations as a first class citizen', function(done) { it('should treat the where object of associations as a first class citizen', function(done) {
var self = this var self = this
......
...@@ -6,9 +6,9 @@ var buster = require("buster") ...@@ -6,9 +6,9 @@ var buster = require("buster")
buster.spec.expose() buster.spec.expose()
buster.testRunner.timeout = 1000 buster.testRunner.timeout = 1000
var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
describe(Helpers.getTestDialectTeaser("Mixin"), function() { describe(Helpers.getTestDialectTeaser("Mixin"), function() {
var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
before(function(done) { before(function(done) {
this.sequelize = sequelize this.sequelize = sequelize
Helpers.clearDatabase(this.sequelize, done) Helpers.clearDatabase(this.sequelize, done)
......
...@@ -3,13 +3,12 @@ var buster = require("buster") ...@@ -3,13 +3,12 @@ var buster = require("buster")
, Helpers = require('./buster-helpers') , Helpers = require('./buster-helpers')
, config = require(__dirname + "/config/config") , config = require(__dirname + "/config/config")
, dialect = Helpers.getTestDialect() , dialect = Helpers.getTestDialect()
, Sequelize = require(__dirname + '/../index')
, noDomains = semver.lt(process.version, '0.8.0')
buster.spec.expose() buster.spec.expose()
buster.testRunner.timeout = 1000 buster.testRunner.timeout = 1000
var Sequelize = require(__dirname + '/../index')
, noDomains = semver.lt(process.version, '0.8.0')
describe(Helpers.getTestDialectTeaser("Configuration"), function() { describe(Helpers.getTestDialectTeaser("Configuration"), function() {
describe('Connections problems should fail with a nice message', function() { describe('Connections problems should fail with a nice message', function() {
it('when we don\'t have the correct server details', function(done) { it('when we don\'t have the correct server details', function(done) {
...@@ -19,21 +18,23 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() { ...@@ -19,21 +18,23 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() {
return done() return done()
} }
var sequelize = new Sequelize(config[dialect].database, config[dialect].username, config[dialect].password, {storage: '/path/to/no/where/land', logging: false, host: '0.0.0.1', port: config[dialect].port, dialect: dialect}) (function() {
var sequelizeSpecific2 = new Sequelize(config[dialect].database, config[dialect].username, config[dialect].password, {storage: '/path/to/no/where/land', logging: false, host: '0.0.0.1', port: config[dialect].port, dialect: dialect})
, domain = require('domain') , domain = require('domain')
, d = domain.create() , d = domain.create()
d.on('error', function(err){ d.on('error', function(err){
expect(err).toMatch(/Failed to find (.*?) Please double check your settings\./) expect(err).toMatch(/Failed to find (.*?) Please double check your settings\./)
d.remove(sequelize.query) d.remove(sequelizeSpecific2.query)
done() done()
}) })
d.run(function(){ d.run(function(){
d.add(sequelize.query) d.add(sequelizeSpecific2.query)
sequelize.query('select 1 as hello') sequelizeSpecific2.query('select 1 as hello')
.success(function(){}) .success(function(){})
}) })
})()
}) })
it('when we don\'t have the correct login information', function(done) { it('when we don\'t have the correct login information', function(done) {
...@@ -49,19 +50,19 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() { ...@@ -49,19 +50,19 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() {
return done() return done()
} }
var sequelize = new Sequelize(config[dialect].database, config[dialect].username, 'fakepass123', {logging: false, host: config[dialect].host, port: 1, dialect: dialect}) var sequelizeSpecific1 = new Sequelize(config[dialect].database, config[dialect].username, 'fakepass123', {logging: false, host: config[dialect].host, port: 1, dialect: dialect})
, domain = require('domain') , domain = require('domain')
, d = domain.create() , d = domain.create()
d.on('error', function(err){ d.on('error', function(err){
expect(err).toMatch(/^Failed to authenticate/) expect(err).toMatch(/^Failed to authenticate/)
d.remove(sequelize) d.remove(sequelizeSpecific1.query)
done() done()
}) })
d.run(function(){ d.run(function(){
d.add(sequelize) d.add(sequelizeSpecific1.query)
sequelize.query('select 1 as hello') sequelizeSpecific1.query('select 1 as hello')
.success(function(){}) .success(function(){})
}) })
}) })
...@@ -75,7 +76,7 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() { ...@@ -75,7 +76,7 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() {
}) })
describe('Instantiation with a URL string', function() { describe('Instantiation with a URL string', function() {
it('should accept username, password, host, port, and database', function(done) { it('should accept username, password, host, port, and database', function() {
var sequelize = new Sequelize('mysql://user:pass@example.com:9821/dbname') var sequelize = new Sequelize('mysql://user:pass@example.com:9821/dbname')
var config = sequelize.config var config = sequelize.config
var options = sequelize.options var options = sequelize.options
...@@ -87,49 +88,44 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() { ...@@ -87,49 +88,44 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() {
expect(config.username).toEqual('user') expect(config.username).toEqual('user')
expect(config.password).toEqual('pass') expect(config.password).toEqual('pass')
expect(config.port).toEqual(9821) expect(config.port).toEqual(9821)
done()
}) })
it('should work with no authentication options', function(done) { it('should work with no authentication options', function() {
var sequelize = new Sequelize('mysql://example.com:9821/dbname') var sequelize = new Sequelize('mysql://example.com:9821/dbname')
var config = sequelize.config var config = sequelize.config
expect(config.username).toEqual(undefined) expect(config.username).toEqual(undefined)
expect(config.password).toEqual(null) expect(config.password).toEqual(null)
done()
}) })
it('should use the default port when no other is specified', function(done) { it('should use the default port when no other is specified', function() {
var sequelize = new Sequelize('mysql://example.com/dbname') var sequelize = new Sequelize('mysql://example.com/dbname')
var config = sequelize.config var config = sequelize.config
// The default port should be set // The default port should be set
expect(config.port).toEqual(3306) expect(config.port).toEqual(3306)
done()
}) })
}) })
describe('Intantiation with arguments', function() { describe('Intantiation with arguments', function() {
it('should accept two parameters (database, username)', function(done) { it('should accept two parameters (database, username)', function() {
var sequelize = new Sequelize('dbname', 'root') var sequelize = new Sequelize('dbname', 'root')
var config = sequelize.config var config = sequelize.config
expect(config.database).toEqual('dbname') expect(config.database).toEqual('dbname')
expect(config.username).toEqual('root') expect(config.username).toEqual('root')
done()
}) })
it('should accept three parameters (database, username, password)', function(done) { it('should accept three parameters (database, username, password)', function() {
var sequelize = new Sequelize('dbname', 'root', 'pass') var sequelize = new Sequelize('dbname', 'root', 'pass')
var config = sequelize.config var config = sequelize.config
expect(config.database).toEqual('dbname') expect(config.database).toEqual('dbname')
expect(config.username).toEqual('root') expect(config.username).toEqual('root')
expect(config.password).toEqual('pass') expect(config.password).toEqual('pass')
done()
}) })
it('should accept four parameters (database, username, password, options)', function(done) { it('should accept four parameters (database, username, password, options)', function() {
var sequelize = new Sequelize('dbname', 'root', 'pass', { port: 999 }) var sequelize = new Sequelize('dbname', 'root', 'pass', { port: 999 })
var config = sequelize.config var config = sequelize.config
...@@ -137,7 +133,6 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() { ...@@ -137,7 +133,6 @@ describe(Helpers.getTestDialectTeaser("Configuration"), function() {
expect(config.username).toEqual('root') expect(config.username).toEqual('root')
expect(config.password).toEqual('pass') expect(config.password).toEqual('pass')
expect(config.port).toEqual(999) expect(config.port).toEqual(999)
done()
}) })
}) })
}) })
...@@ -341,7 +341,9 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -341,7 +341,9 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
Helpers.checkMatchForDialects(dialect, err.message, { Helpers.checkMatchForDialects(dialect, err.message, {
sqlite: /.*SQLITE_CONSTRAINT.*/, sqlite: /.*SQLITE_CONSTRAINT.*/,
mysql: "Column 'smth' cannot be null", // We need to allow two different errors for MySQL, see:
// http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html#sqlmode_strict_trans_tables
mysql: /(Column 'smth' cannot be null|Field 'smth' doesn't have a default value)/,
postgres: /.*column "smth" violates not-null.*/ postgres: /.*column "smth" violates not-null.*/
}) })
...@@ -1313,19 +1315,12 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -1313,19 +1315,12 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
describe('eager loading', function() { describe('eager loading', function() {
before(function(done) { before(function(done) {
var self = this var self = this
this.Task = this.sequelize.define('Task', { title: Sequelize.STRING }) self.Task = self.sequelize.define('Task', { title: Sequelize.STRING })
this.Worker = this.sequelize.define('Worker', { name: Sequelize.STRING }) self.Worker = self.sequelize.define('Worker', { name: Sequelize.STRING })
this.Domain = this.sequelize.define('Domain', { ip: Sequelize.STRING })
this.Environment = this.sequelize.define('Environment', { name: Sequelize.STRING })
this.Environment
.belongsTo(this.Domain, { as: 'PrivateDomain', foreignKey: 'privateDomainId' })
.belongsTo(this.Domain, { as: 'PublicDomain', foreignKey: 'publicDomainId' })
this.init = function(callback) { this.init = function(callback) {
self.Task.sync({ force: true }).success(function() { self.Task.sync({ force: true }).success(function() {
self.Worker.sync({ force: true }).success(function() { self.Worker.sync({ force: true }).success(function() {
self.Domain.sync({ force: true }).success(function() {
self.Environment.sync({ force: true }).success(function() {
self.Worker.create({ name: 'worker' }).success(function(worker) { self.Worker.create({ name: 'worker' }).success(function(worker) {
self.Task.create({ title: 'homework' }).success(function(task) { self.Task.create({ title: 'homework' }).success(function(task) {
self.worker = worker self.worker = worker
...@@ -1335,13 +1330,12 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -1335,13 +1330,12 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
}) })
}) })
}) })
})
})
} }
done() done()
}) })
describe('belongsTo', function() { describe('belongsTo', function() {
describe('generic', function() {
before(function(done) { before(function(done) {
var self = this var self = this
this.Task.belongsTo(this.Worker) this.Task.belongsTo(this.Worker)
...@@ -1386,10 +1380,19 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -1386,10 +1380,19 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
done() done()
}) })
}) })
})
it('returns the private and public ip', function(done) { it('returns the private and public ip', function(done) {
var self = this var self = this
this.Domain.create({ ip: '192.168.0.1' }).success(function(privateIp) { self.Domain = self.sequelize.define('Domain', { ip: Sequelize.STRING })
self.Environment = self.sequelize.define('Environment', { name: Sequelize.STRING })
self.Environment
.belongsTo(self.Domain, { as: 'PrivateDomain', foreignKey: 'privateDomainId' })
.belongsTo(self.Domain, { as: 'PublicDomain', foreignKey: 'publicDomainId' })
self.Domain.sync({ force: true }).success(function() {
self.Environment.sync({ force: true }).success(function() {
self.Domain.create({ ip: '192.168.0.1' }).success(function(privateIp) {
self.Domain.create({ ip: '91.65.189.19' }).success(function(publicIp) { self.Domain.create({ ip: '91.65.189.19' }).success(function(publicIp) {
self.Environment.create({ name: 'environment' }).success(function(env) { self.Environment.create({ name: 'environment' }).success(function(env) {
env.setPrivateDomain(privateIp).success(function() { env.setPrivateDomain(privateIp).success(function() {
...@@ -1416,6 +1419,8 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -1416,6 +1419,8 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
}) })
}) })
}) })
})
})
describe('hasOne', function() { describe('hasOne', function() {
before(function(done) { before(function(done) {
...@@ -2456,7 +2461,7 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -2456,7 +2461,7 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
}) })
it("emits the error event as the referenced table name is invalid", function(done) { it("emits the error event as the referenced table name is invalid", function(done) {
this.timeout = 1500 this.timeout = 2500
var self = this var self = this
this.Author.sync({ force: true }).success(function() { this.Author.sync({ force: true }).success(function() {
self.Post.sync({ force: true }).success(function() { self.Post.sync({ force: true }).success(function() {
......
...@@ -965,7 +965,7 @@ describe(Helpers.getTestDialectTeaser("DAO"), function() { ...@@ -965,7 +965,7 @@ describe(Helpers.getTestDialectTeaser("DAO"), function() {
identifier: {type: Helpers.Sequelize.STRING, primaryKey: true} identifier: {type: Helpers.Sequelize.STRING, primaryKey: true}
}) })
User.sync().success(function(){ User.sync({ force: true }).success(function(){
User.create({ User.create({
name: 'snafu', name: 'snafu',
identifier: 'identifier' identifier: 'identifier'
...@@ -993,7 +993,7 @@ describe(Helpers.getTestDialectTeaser("DAO"), function() { ...@@ -993,7 +993,7 @@ describe(Helpers.getTestDialectTeaser("DAO"), function() {
identifier: {type: Helpers.Sequelize.STRING, primaryKey: true} identifier: {type: Helpers.Sequelize.STRING, primaryKey: true}
}) })
User.sync().success(function(){ User.sync({ force: true }).success(function(){
User.create({ User.create({
name: 'snafu', name: 'snafu',
identifier: 'identifier' identifier: 'identifier'
......
var buster = require("buster") if(typeof require === 'function') {
const buster = require("buster")
, QueryChainer = require("../lib/query-chainer")
, CustomEventEmitter = require("../lib/emitters/custom-event-emitter")
, Helpers = require('./buster-helpers') , Helpers = require('./buster-helpers')
, dialect = Helpers.getTestDialect() , dialect = Helpers.getTestDialect()
, Migrator = require("../lib/migrator") , Migrator = require("../lib/migrator")
}
buster.spec.expose() buster.spec.expose()
buster.testRunner.timeout = 10000 buster.testRunner.timeout = 10000
describe(Helpers.getTestDialectTeaser("Migrator"), function() { describe(Helpers.getTestDialectTeaser("Migrator"), function() {
var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
before(function(done) { before(function(done) {
this.sequelize = sequelize
this.init = function(options, callback) { this.init = function(options, callback) {
options = Helpers.Sequelize.Utils._.extend({ options = Helpers.Sequelize.Utils._.extend({
path: __dirname + '/assets/migrations', path: __dirname + '/assets/migrations',
logging: function(){}, logging: function(){}
context: sequelize
}, options || {}) }, options || {})
var migrator = new Migrator(sequelize, options) var migrator = new Migrator(this.sequelize, options)
migrator migrator
.findOrCreateSequelizeMetaDAO({ force: true }) .findOrCreateSequelizeMetaDAO({ force: true })
...@@ -26,9 +26,13 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -26,9 +26,13 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
callback && callback(migrator, SequelizeMeta) callback && callback(migrator, SequelizeMeta)
}) })
.error(function(err) { console.log(err) }) .error(function(err) { console.log(err) })
} }.bind(this)
Helpers.clearDatabase(this.sequelize, done) Helpers.initTests({ dialect: dialect, onComplete: done, context: this })
})
it("as", function() {
expect(1).toEqual(1)
}) })
describe('getUndoneMigrations', function() { describe('getUndoneMigrations', function() {
...@@ -38,8 +42,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -38,8 +42,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
expect(err).toBeNull() expect(err).toBeNull()
expect(migrations.length).toEqual(0) expect(migrations.length).toEqual(0)
done() done()
}) }.bind(this))
}) }.bind(this))
}) })
it("returns only files between from and to", function(done) { it("returns only files between from and to", function(done) {
...@@ -49,8 +53,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -49,8 +53,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
expect(migrations.length).toEqual(1) expect(migrations.length).toEqual(1)
expect(migrations[migrations.length - 1].filename).toEqual('20111117063700-createPerson.js') expect(migrations[migrations.length - 1].filename).toEqual('20111117063700-createPerson.js')
done() done()
}) }.bind(this))
}) }.bind(this))
}) })
it("returns exactly the migration which is defined in from and to", function(done) { it("returns exactly the migration which is defined in from and to", function(done) {
...@@ -60,8 +64,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -60,8 +64,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
expect(migrations.length).toEqual(1) expect(migrations.length).toEqual(1)
expect(migrations[migrations.length - 1].filename).toEqual('20111117063700-createPerson.js') expect(migrations[migrations.length - 1].filename).toEqual('20111117063700-createPerson.js')
done() done()
}) }.bind(this))
}) }.bind(this))
}) })
it("returns also the file which is exactly options.from or options.to", function(done) { it("returns also the file which is exactly options.from or options.to", function(done) {
...@@ -72,8 +76,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -72,8 +76,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
expect(migrations[0].filename).toEqual('20111117063700-createPerson.js') expect(migrations[0].filename).toEqual('20111117063700-createPerson.js')
expect(migrations[1].filename).toEqual('20111130161100-emptyMigration.js') expect(migrations[1].filename).toEqual('20111130161100-emptyMigration.js')
done() done()
}) }.bind(this))
}) }.bind(this))
}) })
it("returns all files to options.to if no options.from is defined", function(done) { it("returns all files to options.to if no options.from is defined", function(done) {
...@@ -82,8 +86,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -82,8 +86,8 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
expect(err).toBeNull() expect(err).toBeNull()
expect(migrations.length).toEqual(2) expect(migrations.length).toEqual(2)
done() done()
}) }.bind(this))
}) }.bind(this))
}) })
it("returns all files from last migration id stored in database", function(done) { it("returns all files from last migration id stored in database", function(done) {
...@@ -94,24 +98,23 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -94,24 +98,23 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
expect(migrations.length).toEqual(6) expect(migrations.length).toEqual(6)
expect(migrations[0].filename).toEqual('20111130161100-emptyMigration.js') expect(migrations[0].filename).toEqual('20111130161100-emptyMigration.js')
done() done()
}) }.bind(this))
}) }.bind(this))
}) }.bind(this))
}) })
}) })
describe('migrations', function() { describe('migrations', function() {
before(function(done) { before(function(done) {
var self = this
this.init({ from: 20111117063700, to: 20111117063700 }, function(migrator) { this.init({ from: 20111117063700, to: 20111117063700 }, function(migrator) {
self.migrator = migrator this.migrator = migrator
self.migrator.migrate().success(done) this.migrator.migrate().success(done)
}) }.bind(this))
}) })
describe('executions', function() { describe('executions', function() {
it("executes migration #20111117063700 and correctly creates the table", function(done) { it("executes migration #20111117063700 and correctly creates the table", function(done) {
sequelize.getQueryInterface().showAllTables().success(function(tableNames) { this.sequelize.getQueryInterface().showAllTables().success(function(tableNames) {
tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' }) tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' })
expect(tableNames).toEqual([ 'Person' ]) expect(tableNames).toEqual([ 'Person' ])
done() done()
...@@ -119,7 +122,7 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -119,7 +122,7 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
}) })
it("executes migration #20111117063700 and correctly adds isBetaMember", function(done) { it("executes migration #20111117063700 and correctly adds isBetaMember", function(done) {
sequelize.getQueryInterface().describeTable('Person').success(function(data) { this.sequelize.getQueryInterface().describeTable('Person').success(function(data) {
var fields = Helpers.Sequelize.Utils._.keys(data).sort() var fields = Helpers.Sequelize.Utils._.keys(data).sort()
expect(fields).toEqual([ 'isBetaMember', 'name' ]) expect(fields).toEqual([ 'isBetaMember', 'name' ])
done() done()
...@@ -127,19 +130,18 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -127,19 +130,18 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
}) })
it("executes migration #20111117063700 correctly up (createTable) and downwards (dropTable)", function(done) { it("executes migration #20111117063700 correctly up (createTable) and downwards (dropTable)", function(done) {
var self = this this.sequelize.getQueryInterface().showAllTables().success(function(tableNames) {
sequelize.getQueryInterface().showAllTables().success(function(tableNames) {
tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' }) tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' })
expect(tableNames).toEqual([ 'Person' ]) expect(tableNames).toEqual([ 'Person' ])
self.migrator.migrate({ method: 'down' }).success(function() { this.migrator.migrate({ method: 'down' }).success(function() {
self.sequelize.getQueryInterface().showAllTables().success(function(tableNames) { this.sequelize.getQueryInterface().showAllTables().success(function(tableNames) {
tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' }) tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' })
expect(tableNames).toEqual([]) expect(tableNames).toEqual([])
done() done()
}) }.bind(this))
}) }.bind(this))
}) }.bind(this))
}) })
it("executes the empty migration #20111130161100", function(done) { it("executes the empty migration #20111130161100", function(done) {
...@@ -159,38 +161,35 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -159,38 +161,35 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
describe('renameTable', function() { describe('renameTable', function() {
before(function(done) { before(function(done) {
var self = this
this.init({ from: 20111117063700, to: 20111117063700 }, function(migrator) { this.init({ from: 20111117063700, to: 20111117063700 }, function(migrator) {
self.migrator = migrator this.migrator = migrator
self.migrator.migrate().success(done) this.migrator.migrate().success(done)
}) }.bind(this))
}) })
it("executes migration #20111205064000 and renames a table", function(done) { it("executes migration #20111205064000 and renames a table", function(done) {
var self = this this.sequelize.getQueryInterface().showAllTables().success(function(tableNames) {
self.sequelize.getQueryInterface().showAllTables().success(function(tableNames) {
tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' }) tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' })
expect(tableNames).toContain('Person') expect(tableNames).toContain('Person')
self.init({ from: 20111205064000, to: 20111205064000 }, function(migrator) { this.init({ from: 20111205064000, to: 20111205064000 }, function(migrator) {
migrator.migrate().success(function() { migrator.migrate().success(function() {
self.sequelize.getQueryInterface().showAllTables().success(function(tableNames) { this.sequelize.getQueryInterface().showAllTables().success(function(tableNames) {
tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' }) tableNames = tableNames.filter(function(e){ return e != 'SequelizeMeta' })
expect(tableNames).toEqual([ 'User' ]) expect(tableNames).toEqual([ 'User' ])
done() done()
}) })
}) }.bind(this))
}) }.bind(this))
}) }.bind(this))
}) })
}) })
describe('addColumn', function() { describe('addColumn', function() {
it('adds a column to the user table', function(done) { it('adds a column to the user table', function(done) {
var self = this this.init({ from: 20111117063700, to: 20111205162700 }, function(migrator) {
self.init({ from: 20111117063700, to: 20111205162700 }, function(migrator) {
migrator.migrate().complete(function(err) { migrator.migrate().complete(function(err) {
self.sequelize.getQueryInterface().describeTable('User').complete(function(err, data) { this.sequelize.getQueryInterface().describeTable('User').complete(function(err, data) {
var signature = data.signature var signature = data.signature
, isAdmin = data.isAdmin , isAdmin = data.isAdmin
, shopId = data.shopId , shopId = data.shopId
...@@ -202,17 +201,16 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -202,17 +201,16 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
done() done()
}) })
}) }.bind(this))
}) }.bind(this))
}) })
}) })
describe('removeColumn', function() { describe('removeColumn', function() {
it('removes the shopId column from user', function(done) { it('removes the shopId column from user', function(done) {
var self = this this.init({ to: 20111206061400 }, function(migrator) {
self.init({ to: 20111206061400 }, function(migrator) {
migrator.migrate().success(function(){ migrator.migrate().success(function(){
self.sequelize.getQueryInterface().describeTable('User').success(function(data) { this.sequelize.getQueryInterface().describeTable('User').success(function(data) {
var signature = data.signature var signature = data.signature
, isAdmin = data.isAdmin , isAdmin = data.isAdmin
, shopId = data.shopId , shopId = data.shopId
...@@ -225,17 +223,16 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -225,17 +223,16 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
done() done()
}) })
}) }.bind(this))
}) }.bind(this))
}) })
}) })
describe('changeColumn', function() { describe('changeColumn', function() {
it('changes the signature column from user to default "signature" + notNull', function(done) { it('changes the signature column from user to default "signature" + notNull', function(done) {
var self = this this.init({ to: 20111206063000 }, function(migrator) {
self.init({ to: 20111206063000 }, function(migrator) {
migrator.migrate().success(function() { migrator.migrate().success(function() {
self.sequelize.getQueryInterface().describeTable('User').success(function(data) { this.sequelize.getQueryInterface().describeTable('User').success(function(data) {
var signature = data.signature var signature = data.signature
if (dialect === 'postgres') { if (dialect === 'postgres') {
...@@ -248,18 +245,17 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -248,18 +245,17 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
done() done()
}) })
}) }.bind(this))
}) }.bind(this))
}) })
}) })
}) })
describe('renameColumn', function() { describe('renameColumn', function() {
it("renames the signature column from user to sig", function(done) { it("renames the signature column from user to sig", function(done) {
var self = this this.init({ to: 20111206163300 }, function(migrator) {
self.init({ to: 20111206163300 }, function(migrator) {
migrator.migrate().success(function(){ migrator.migrate().success(function(){
self.sequelize.getQueryInterface().describeTable('User').success(function(data) { this.sequelize.getQueryInterface().describeTable('User').success(function(data) {
var signature = data.signature var signature = data.signature
, sig = data.sig , sig = data.sig
...@@ -268,8 +264,9 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() { ...@@ -268,8 +264,9 @@ describe(Helpers.getTestDialectTeaser("Migrator"), function() {
done() done()
}) })
}) }.bind(this))
}) }.bind(this))
}) })
}) })
}) })
/* jshint camelcase: false */ /* jshint camelcase: false */
var buster = require("buster") var buster = require("buster")
, config = require('../config/config')
, Helpers = require('../buster-helpers') , Helpers = require('../buster-helpers')
, dialect = Helpers.getTestDialect() , dialect = Helpers.getTestDialect()
...@@ -10,9 +9,8 @@ buster.testRunner.timeout = 1000 ...@@ -10,9 +9,8 @@ buster.testRunner.timeout = 1000
var sequelize = Helpers.createSequelizeInstance({dialect: dialect}) var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
if (dialect.match(/^mysql/)) { if (dialect.match(/^mysql/)) {
describe('[MYSQL] Associations', function() { describe('[MYSQL Specific] Associations', function() {
before(function(done) { before(function(done) {
var self = this
this.sequelize = sequelize this.sequelize = sequelize
Helpers.clearDatabase(this.sequelize, done) Helpers.clearDatabase(this.sequelize, done)
}) })
...@@ -26,12 +24,14 @@ if (dialect.match(/^mysql/)) { ...@@ -26,12 +24,14 @@ if (dialect.match(/^mysql/)) {
Table1.hasMany(Table2) Table1.hasMany(Table2)
Table2.hasMany(Table1) Table2.hasMany(Table1)
this.sequelize.sync({ force: true }).success(function() { Table1.sync({ force: true }).success(function() {
Table2.sync({ force: true }).success(function() {
expect(self.sequelize.daoFactoryManager.getDAO('wp_table1swp_table2s')).toBeDefined() expect(self.sequelize.daoFactoryManager.getDAO('wp_table1swp_table2s')).toBeDefined()
done() done()
}) })
}) })
}) })
})
describe('when join table name is specified', function() { describe('when join table name is specified', function() {
before(function(done){ before(function(done){
...@@ -40,17 +40,14 @@ if (dialect.match(/^mysql/)) { ...@@ -40,17 +40,14 @@ if (dialect.match(/^mysql/)) {
Table1.hasMany(Table2, {joinTableName: 'table1_to_table2'}) Table1.hasMany(Table2, {joinTableName: 'table1_to_table2'})
Table2.hasMany(Table1, {joinTableName: 'table1_to_table2'}) Table2.hasMany(Table1, {joinTableName: 'table1_to_table2'})
this.sequelize.sync({ force: true }).success(done) Table1.sync({ force: true }).success(function() {
Table2.sync({ force: true }).success(done)
}) })
it("should not use a combined name", function(done) {
expect(this.sequelize.daoFactoryManager.getDAO('ms_table1sms_table2s')).not.toBeDefined()
done()
}) })
it("should use the specified name", function(done) { it("should not use only a specified name", function() {
expect(this.sequelize.daoFactoryManager.getDAO('ms_table1sms_table2s')).not.toBeDefined()
expect(this.sequelize.daoFactoryManager.getDAO('table1_to_table2')).toBeDefined() expect(this.sequelize.daoFactoryManager.getDAO('table1_to_table2')).toBeDefined()
done()
}) })
}) })
}) })
...@@ -79,12 +76,14 @@ if (dialect.match(/^mysql/)) { ...@@ -79,12 +76,14 @@ if (dialect.match(/^mysql/)) {
tasks[tasks.length] = {name: 'Task' + Math.random()} tasks[tasks.length] = {name: 'Task' + Math.random()}
} }
this.sequelize.sync({ force: true }).success(function() { this.User.sync({ force: true }).success(function() {
self.Task.sync({ force: true }).success(function() {
self.User.bulkCreate(users).success(function() { self.User.bulkCreate(users).success(function() {
self.Task.bulkCreate(tasks).success(done) self.Task.bulkCreate(tasks).success(done)
}) })
}) })
}) })
})
describe('addDAO / getDAO', function() { describe('addDAO / getDAO', function() {
before(function(done) { before(function(done) {
......
...@@ -8,7 +8,7 @@ buster.testRunner.timeout = 1000 ...@@ -8,7 +8,7 @@ buster.testRunner.timeout = 1000
var sequelize = Helpers.createSequelizeInstance({dialect: dialect}) var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
if (dialect.match(/^mysql/)) { if (dialect.match(/^mysql/)) {
describe('[MYSQL] Connector Manager', function() { describe('[MYSQL Specific] Connector Manager', function() {
before(function(done) { before(function(done) {
this.sequelize = sequelize this.sequelize = sequelize
Helpers.clearDatabase(this.sequelize, done) Helpers.clearDatabase(this.sequelize, done)
......
...@@ -10,7 +10,7 @@ buster.testRunner.timeout = 1000 ...@@ -10,7 +10,7 @@ buster.testRunner.timeout = 1000
var sequelize = Helpers.createSequelizeInstance({dialect: dialect}) var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
if (dialect.match(/^mysql/)) { if (dialect.match(/^mysql/)) {
describe('[MYSQL] DAOFactory', function() { describe('[MYSQL Specific] DAOFactory', function() {
before(function(done) { before(function(done) {
this.sequelize = sequelize this.sequelize = sequelize
Helpers.clearDatabase(this.sequelize, done) Helpers.clearDatabase(this.sequelize, done)
......
...@@ -11,7 +11,7 @@ buster.testRunner.timeout = 1000 ...@@ -11,7 +11,7 @@ buster.testRunner.timeout = 1000
var sequelize = Helpers.createSequelizeInstance({dialect: dialect}) var sequelize = Helpers.createSequelizeInstance({dialect: dialect})
if (dialect.match(/^mysql/)) { if (dialect.match(/^mysql/)) {
describe('[MYSQL] QueryGenerator', function() { describe('[MYSQL Specific] QueryGenerator', function() {
before(function(done) { before(function(done) {
this.sequelize = sequelize this.sequelize = sequelize
Helpers.clearDatabase(this.sequelize, done) Helpers.clearDatabase(this.sequelize, done)
......
...@@ -73,7 +73,7 @@ describe(Helpers.getTestDialectTeaser("Promise"), function () { ...@@ -73,7 +73,7 @@ describe(Helpers.getTestDialectTeaser("Promise"), function () {
return self.User.find(1) return self.User.find(1)
}).then(function(user5) { }).then(function(user5) {
expect(user5.aNumber).toBe(3) expect(user5.aNumber).toBe(3)
done(); done()
}, done) }, done)
}) })
}) })
......
if(typeof require === 'function') { var buster = require("buster")
const buster = require("buster")
, QueryChainer = require("../lib/query-chainer") , QueryChainer = require("../lib/query-chainer")
, CustomEventEmitter = require("../lib/emitters/custom-event-emitter") , CustomEventEmitter = require("../lib/emitters/custom-event-emitter")
, Helpers = require('./buster-helpers') , Helpers = require('./buster-helpers')
, dialect = Helpers.getTestDialect()
}
buster.spec.expose() buster.spec.expose()
buster.testRunner.timeout = 1000 buster.testRunner.timeout = 1000
......
...@@ -241,7 +241,8 @@ describe(Helpers.getTestDialectTeaser("Sequelize"), function() { ...@@ -241,7 +241,8 @@ describe(Helpers.getTestDialectTeaser("Sequelize"), function() {
var Project = this.sequelize.define('project' + config.rand(), { title: Helpers.Sequelize.STRING }) var Project = this.sequelize.define('project' + config.rand(), { title: Helpers.Sequelize.STRING })
var Task = this.sequelize.define('task' + config.rand(), { title: Helpers.Sequelize.STRING }) var Task = this.sequelize.define('task' + config.rand(), { title: Helpers.Sequelize.STRING })
sequelize.sync().success(function() { Project.sync({ force: true }).success(function() {
Task.sync({ force: true }).success(function() {
Project.create({title: 'bla'}).success(function() { Project.create({title: 'bla'}).success(function() {
Task.create({title: 'bla'}).success(function(task){ Task.create({title: 'bla'}).success(function(task){
expect(task).toBeDefined() expect(task).toBeDefined()
...@@ -251,6 +252,7 @@ describe(Helpers.getTestDialectTeaser("Sequelize"), function() { ...@@ -251,6 +252,7 @@ describe(Helpers.getTestDialectTeaser("Sequelize"), function() {
}) })
}) })
}) })
})
it('works with correct database credentials', function(done) { it('works with correct database credentials', function(done) {
var User = sequelize.define('User', { username: Helpers.Sequelize.STRING }) var User = sequelize.define('User', { username: Helpers.Sequelize.STRING })
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!