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

Commit 65c0a284 by Sascha Depold

added charset definition + set to latin1 in tests

1 parent 485cf460
...@@ -113,3 +113,7 @@ ...@@ -113,3 +113,7 @@
- [FEATURE] getModel for modelManager for getting a model without storing it in a variable; use it via sequelize.modelManager.getModel('User') - [FEATURE] getModel for modelManager for getting a model without storing it in a variable; use it via sequelize.modelManager.getModel('User')
- [TEST] test suite refactoring for jasmine - [TEST] test suite refactoring for jasmine
# v1.2.1 #
- [REFACTORING] renamed the global options for sync, query and define on sequelize; before: options.queryOptions; now: options.query
- [FEATURE] allow definition of charset via global define option in sequelize or via an option in sequelize.define
- [TEST] force latin1 charset for travis
...@@ -68,7 +68,7 @@ ModelDefinition.prototype.query = function() { ...@@ -68,7 +68,7 @@ ModelDefinition.prototype.query = function() {
} }
ModelDefinition.prototype.sync = function(options) { ModelDefinition.prototype.sync = function(options) {
options = options || {} options = Utils.merge(options || {}, this.options)
var self = this var self = this
var doQuery = function() { var doQuery = function() {
......
...@@ -7,7 +7,9 @@ var Utils = require("./utils") ...@@ -7,7 +7,9 @@ var Utils = require("./utils")
var Sequelize = module.exports = function(database, username, password, options) { var Sequelize = module.exports = function(database, username, password, options) {
options = options || {} options = options || {}
Utils._.reject(options, function(_, key) { return ["host", "port", "disableTableNameModification"].indexOf(key) > -1 }) Utils._.reject(options, function(_, key) {
return ["host", "port", "disableTableNameModification"].indexOf(key) > -1
})
this.options = options this.options = options
this.config = { this.config = {
...@@ -27,7 +29,8 @@ var instanceMethods = { ...@@ -27,7 +29,8 @@ var instanceMethods = {
define: function(modelName, attributes, options) { define: function(modelName, attributes, options) {
options = options || {} options = options || {}
if(this.options.defineOptions) options = Sequelize.Utils.merge(options, this.options.defineOptions) if(this.options.define)
options = Sequelize.Utils.merge(options, this.options.define)
var model = this.modelManager.addModel(new ModelDefinition(modelName, attributes, options)) var model = this.modelManager.addModel(new ModelDefinition(modelName, attributes, options))
...@@ -42,7 +45,8 @@ var instanceMethods = { ...@@ -42,7 +45,8 @@ var instanceMethods = {
query: function(sql, callee, options) { query: function(sql, callee, options) {
options = options || {} options = options || {}
if(this.options.queryOptions) options = Sequelize.Utils.merge(options, this.options.queryOptions) if(this.options.query)
options = Sequelize.Utils.merge(options, this.options.query)
options.logging = this.options.hasOwnProperty('logging') ? this.options.logging : true options.logging = this.options.hasOwnProperty('logging') ? this.options.logging : true
...@@ -52,7 +56,8 @@ var instanceMethods = { ...@@ -52,7 +56,8 @@ var instanceMethods = {
sync: function(options) { sync: function(options) {
options = options || {} options = options || {}
if(this.options.syncOptions) options = Sequelize.Utils.merge(options, this.options.syncOptions) if(this.options.sync)
options = Sequelize.Utils.merge(options, this.options.sync)
var self = this var self = this
var eventEmitter = new Utils.CustomEventEmitter(function() { var eventEmitter = new Utils.CustomEventEmitter(function() {
......
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'it should work correctly after being idle': function(exit) { 'it should work correctly after being idle': function(exit) {
var User = sequelize.define('User', { username: Sequelize.STRING }) var User = sequelize.define('User', { username: Sequelize.STRING })
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
User.create({username: 'user1'}).on('success', function() { User.create({username: 'user1'}).on('success', function() {
User.count().on('success', function(count) { User.count().on('success', function(count) {
...@@ -19,4 +19,4 @@ module.exports = { ...@@ -19,4 +19,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
var initialize = function(options, callback) { var initialize = function(options, callback) {
options = options || {} options = options || {}
options.taskCount = options.taskCount || 1 options.taskCount = options.taskCount || 1
options.userCount = options.userCount || 1 options.userCount = options.userCount || 1
var num = config.rand() var num = config.rand()
, User = sequelize.define('User' + num, { name: Sequelize.STRING }) , User = sequelize.define('User' + num, { name: Sequelize.STRING })
, Task = sequelize.define('Task' + num, { name: Sequelize.STRING }) , Task = sequelize.define('Task' + num, { name: Sequelize.STRING })
...@@ -16,13 +16,13 @@ var initialize = function(options, callback) { ...@@ -16,13 +16,13 @@ var initialize = function(options, callback) {
User.hasMany(Task, {as:'Tasks'}) User.hasMany(Task, {as:'Tasks'})
Task.hasMany(User, {as:'Users'}) Task.hasMany(User, {as:'Users'})
sequelize.sync({force: true}).on('success', function() { sequelize.sync({force: true}).on('success', function() {
for(var i = 0; i < options.taskCount; i++) for(var i = 0; i < options.taskCount; i++)
chainer.add(Task.create({name: 'task'+i})) chainer.add(Task.create({name: 'task'+i}))
for(var i = 0; i < options.userCount; i++) for(var i = 0; i < options.userCount; i++)
chainer.add(User.create({name: 'user'+i})) chainer.add(User.create({name: 'user'+i}))
chainer.run().on('success', function() { chainer.run().on('success', function() {
callback(Task, User) callback(Task, User)
}) })
...@@ -46,7 +46,7 @@ module.exports = { ...@@ -46,7 +46,7 @@ module.exports = {
}) })
}) })
}) })
}) })
}) })
}) })
...@@ -62,7 +62,7 @@ module.exports = { ...@@ -62,7 +62,7 @@ module.exports = {
user.setTasks(tasks).on('success', function() { user.setTasks(tasks).on('success', function() {
user.getTasks().on('success', function(_tasks) { user.getTasks().on('success', function(_tasks) {
assert.eql(_tasks.length, tasks.length) assert.eql(_tasks.length, tasks.length)
user.removeTask(tasks[0]).on('success', function() { user.removeTask(tasks[0]).on('success', function() {
user.getTasks().on('success', function(_tasks) { user.getTasks().on('success', function(_tasks) {
assert.eql(_tasks.length, tasks.length - 1) assert.eql(_tasks.length, tasks.length - 1)
...@@ -78,4 +78,4 @@ module.exports = { ...@@ -78,4 +78,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'it should correctly add the foreign id': function() { 'it should correctly add the foreign id': function() {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
Task.belongsTo(User) Task.belongsTo(User)
assert.eql(Task.attributes['User'+num+'Id'], "INT") assert.eql(Task.attributes['User'+num+'Id'], "INT")
}, },
...@@ -16,14 +16,14 @@ module.exports = { ...@@ -16,14 +16,14 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }, {underscored: true}) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }, {underscored: true})
Task.belongsTo(User) Task.belongsTo(User)
assert.eql(Task.attributes['user'+num+'_id'], "INT") assert.eql(Task.attributes['user'+num+'_id'], "INT")
}, },
'it should correctly add the foreign id if foreignKey is passed': function() { 'it should correctly add the foreign id if foreignKey is passed': function() {
var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING }) var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING })
var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING }) var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING })
Task.belongsTo(User, {foreignKey: 'person_id'}) Task.belongsTo(User, {foreignKey: 'person_id'})
assert.eql(Task.attributes['person_id'], "INT") assert.eql(Task.attributes['person_id'], "INT")
}, },
...@@ -31,9 +31,9 @@ module.exports = { ...@@ -31,9 +31,9 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
Task.belongsTo(User) Task.belongsTo(User)
var t = Task.build({title: 'asd'}) var t = Task.build({title: 'asd'})
assert.isDefined(t['setUser'+num]) assert.isDefined(t['setUser'+num])
assert.isDefined(t['getUser'+num]) assert.isDefined(t['getUser'+num])
...@@ -41,9 +41,9 @@ module.exports = { ...@@ -41,9 +41,9 @@ module.exports = {
'it should define getter and setter according to passed as option': function() { 'it should define getter and setter according to passed as option': function() {
var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING }) var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING })
var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING }) var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING })
Task.belongsTo(User, {as: 'Person'}) Task.belongsTo(User, {as: 'Person'})
var t = Task.build({title: 'asd'}) var t = Task.build({title: 'asd'})
assert.isDefined(t.setPerson) assert.isDefined(t.setPerson)
assert.isDefined(t.getPerson) assert.isDefined(t.getPerson)
...@@ -52,16 +52,16 @@ module.exports = { ...@@ -52,16 +52,16 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
Task.belongsTo(User) Task.belongsTo(User)
var t = Task.build({title: 'asd'}) var t = Task.build({title: 'asd'})
assert.isNull(t['User'+num+'Id']) assert.isNull(t['User'+num+'Id'])
}, },
'it should set and get the correct object': function(exit) { 'it should set and get the correct object': function(exit) {
var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING }) var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING })
var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING }) var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING })
Task.belongsTo(User, {as: 'User'}) Task.belongsTo(User, {as: 'User'})
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
...@@ -82,9 +82,9 @@ module.exports = { ...@@ -82,9 +82,9 @@ module.exports = {
'it should correctly delete associations': function(exit) { 'it should correctly delete associations': function(exit) {
var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING }) var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING })
var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING }) var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING })
Task.belongsTo(User, {as: 'User'}) Task.belongsTo(User, {as: 'User'})
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
Task.sync({force: true}).on('success', function() { Task.sync({force: true}).on('success', function() {
User.create({username: 'asd'}).on('success', function(u) { User.create({username: 'asd'}).on('success', function(u) {
...@@ -110,7 +110,7 @@ module.exports = { ...@@ -110,7 +110,7 @@ module.exports = {
Person.belongsTo(Person, {as: 'Mother', foreignKey: 'MotherId'}) Person.belongsTo(Person, {as: 'Mother', foreignKey: 'MotherId'})
Person.belongsTo(Person, {as: 'Father', foreignKey: 'FatherId'}) Person.belongsTo(Person, {as: 'Father', foreignKey: 'FatherId'})
Person.sync({force: true}).on('success', function() { Person.sync({force: true}).on('success', function() {
var p = Person.build() var p = Person.build()
assert.isDefined(p.setFather) assert.isDefined(p.setFather)
...@@ -125,4 +125,4 @@ module.exports = { ...@@ -125,4 +125,4 @@ module.exports = {
Person.belongsTo(Person, {as: 'Mother'}) Person.belongsTo(Person, {as: 'Mother'})
assert.eql(Person.associations["MotherPerson"+num+"s"].options.foreignKey, 'MotherId') assert.eql(Person.associations["MotherPerson"+num+"s"].options.foreignKey, 'MotherId')
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
var initUsers = function(num, callback) { var initUsers = function(num, callback) {
var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT }) var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT })
, users = [] , users = []
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
while(num--) users.push(User.build({name: 'user' + num, bio: 'foobar'})) while(num--) users.push(User.build({name: 'user' + num, bio: 'foobar'}))
callback(users, User) callback(users, User)
...@@ -37,4 +37,4 @@ module.exports = { ...@@ -37,4 +37,4 @@ module.exports = {
assert.eql(Task.build().foobar, 'asd') assert.eql(Task.build().foobar, 'asd')
assert.eql(Task.build().flag, false) assert.eql(Task.build().flag, false)
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'it should correctly count all objects': function(exit) { 'it should correctly count all objects': function(exit) {
var User = sequelize.define('User', { username: Sequelize.STRING }) var User = sequelize.define('User', { username: Sequelize.STRING })
...@@ -30,4 +30,4 @@ module.exports = { ...@@ -30,4 +30,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
var initUsers = function(num, callback) { var initUsers = function(num, callback) {
return sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT }) return sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT })
...@@ -49,4 +49,4 @@ module.exports = { ...@@ -49,4 +49,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'destroy should delete a saved record from the database': function(exit) { 'destroy should delete a saved record from the database': function(exit) {
...@@ -32,4 +32,4 @@ module.exports = { ...@@ -32,4 +32,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, { logging: false, define: { charset: 'latin1' } })
module.exports = { module.exports = {
'it should correctly determine equal objects': function(exit) { 'it should correctly determine equal objects': function(exit) {
......
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
var initUsers = function(num, callback) { var initUsers = function(num, callback) {
var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT }) var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT })
...@@ -11,7 +11,7 @@ var initUsers = function(num, callback) { ...@@ -11,7 +11,7 @@ var initUsers = function(num, callback) {
else callback(user, User) else callback(user, User)
}) })
} }
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
createUser() createUser()
}) })
...@@ -118,4 +118,4 @@ module.exports = { ...@@ -118,4 +118,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'it should correctly add the foreign id - monodirectional': function() { 'it should correctly add the foreign id - monodirectional': function() {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasMany(Task) User.hasMany(Task)
assert.eql(Task.attributes['User'+num+'Id'], "INT") assert.eql(Task.attributes['User'+num+'Id'], "INT")
}, },
...@@ -29,13 +29,13 @@ module.exports = { ...@@ -29,13 +29,13 @@ module.exports = {
assert.isDefined(model.attributes['Task'+num+'Id']) assert.isDefined(model.attributes['Task'+num+'Id'])
exit(function(){}) exit(function(){})
} }
}) })
}, },
'it should correctly add the foreign id with underscore - monodirectional': function() { 'it should correctly add the foreign id with underscore - monodirectional': function() {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING}, {underscored: true}) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING}, {underscored: true})
Task.hasMany(User) Task.hasMany(User)
assert.isDefined(User.attributes['task'+ num +'_id']) assert.isDefined(User.attributes['task'+ num +'_id'])
}, },
...@@ -43,10 +43,10 @@ module.exports = { ...@@ -43,10 +43,10 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true}) var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true})
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
Task.hasMany(User) Task.hasMany(User)
User.hasMany(Task) User.hasMany(Task)
assert.isUndefined(Task.attributes['user'+ num +'_id']) assert.isUndefined(Task.attributes['user'+ num +'_id'])
assert.isUndefined(User.attributes['user'+ num +'_id']) assert.isUndefined(User.attributes['user'+ num +'_id'])
...@@ -61,7 +61,7 @@ module.exports = { ...@@ -61,7 +61,7 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true}) var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true})
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasMany(Task, {foreignKey: 'person_id'}) User.hasMany(Task, {foreignKey: 'person_id'})
assert.eql(Task.attributes.person_id, "INT") assert.eql(Task.attributes.person_id, "INT")
}, },
...@@ -69,10 +69,10 @@ module.exports = { ...@@ -69,10 +69,10 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true}) var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true})
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasMany(Task, {foreignKey: 'person_id'}) User.hasMany(Task, {foreignKey: 'person_id'})
Task.hasMany(User, {foreignKey: 'work_item_id'}) Task.hasMany(User, {foreignKey: 'work_item_id'})
sequelize.modelManager.models.forEach(function(model) { sequelize.modelManager.models.forEach(function(model) {
if(model.tableName == (Task.tableName + User.tableName)) { if(model.tableName == (Task.tableName + User.tableName)) {
assert.isDefined(model.attributes.person_id) assert.isDefined(model.attributes.person_id)
...@@ -84,9 +84,9 @@ module.exports = { ...@@ -84,9 +84,9 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasMany(Task) User.hasMany(Task)
var u = User.build({username: 'asd'}) var u = User.build({username: 'asd'})
assert.isDefined(u['setTask'+num+"s"]) assert.isDefined(u['setTask'+num+"s"])
assert.isDefined(u['getTask'+num+"s"]) assert.isDefined(u['getTask'+num+"s"])
...@@ -95,14 +95,14 @@ module.exports = { ...@@ -95,14 +95,14 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasMany(Task) User.hasMany(Task)
Task.hasMany(User) Task.hasMany(User)
var u = User.build({username: 'asd'}) var u = User.build({username: 'asd'})
assert.isDefined(u['setTask'+num+"s"]) assert.isDefined(u['setTask'+num+"s"])
assert.isDefined(u['getTask'+num+"s"]) assert.isDefined(u['getTask'+num+"s"])
var t = Task.build({title: 'foobar'}) var t = Task.build({title: 'foobar'})
assert.isDefined(t['setUser'+num+'s']) assert.isDefined(t['setUser'+num+'s'])
assert.isDefined(t['getUser'+num+'s']) assert.isDefined(t['getUser'+num+'s'])
...@@ -111,9 +111,9 @@ module.exports = { ...@@ -111,9 +111,9 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasMany(Task, {as: 'Tasks'}) User.hasMany(Task, {as: 'Tasks'})
var u = User.build({username: 'asd'}) var u = User.build({username: 'asd'})
assert.isDefined(u.setTasks) assert.isDefined(u.setTasks)
assert.isDefined(u.getTasks) assert.isDefined(u.getTasks)
...@@ -122,14 +122,14 @@ module.exports = { ...@@ -122,14 +122,14 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasMany(Task, {as: 'Tasks'}) User.hasMany(Task, {as: 'Tasks'})
Task.hasMany(User, {as: 'Users'}) Task.hasMany(User, {as: 'Users'})
var u = User.build({username: 'asd'}) var u = User.build({username: 'asd'})
assert.isDefined(u.setTasks) assert.isDefined(u.setTasks)
assert.isDefined(u.getTasks) assert.isDefined(u.getTasks)
var t = Task.build({title: 'asd'}) var t = Task.build({title: 'asd'})
assert.isDefined(t.setUsers) assert.isDefined(t.setUsers)
assert.isDefined(t.getUsers) assert.isDefined(t.getUsers)
...@@ -137,26 +137,26 @@ module.exports = { ...@@ -137,26 +137,26 @@ module.exports = {
'it should set and get the correct objects - monodirectional': function(exit) { 'it should set and get the correct objects - monodirectional': function(exit) {
var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING }) var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING })
var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING }) var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING })
User.hasMany(Task, {as: 'Tasks'}) User.hasMany(Task, {as: 'Tasks'})
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
Task.sync({force: true}).on('success', function() { Task.sync({force: true}).on('success', function() {
User.create({username: 'name'}).on('success', function(user) { User.create({username: 'name'}).on('success', function(user) {
Task.create({title: 'task1'}).on('success', function(task1) { Task.create({title: 'task1'}).on('success', function(task1) {
Task.create({title: 'task2'}).on('success', function(task2) { Task.create({title: 'task2'}).on('success', function(task2) {
user.setTasks([task1, task2]).on('success', function() { user.setTasks([task1, task2]).on('success', function() {
user.getTasks().on('success', function(tasks) { user.getTasks().on('success', function(tasks) {
assert.eql(tasks.length, 2) assert.eql(tasks.length, 2)
exit(function(){}) exit(function(){})
}) })
}) })
}) })
}) })
}) })
}) })
}) })
...@@ -164,22 +164,22 @@ module.exports = { ...@@ -164,22 +164,22 @@ module.exports = {
'it should set and get the correct objects - bidirectional': function(exit) { 'it should set and get the correct objects - bidirectional': function(exit) {
var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING }) var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING })
var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING }) var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING })
User.hasMany(Task, {as: 'Tasks'}) User.hasMany(Task, {as: 'Tasks'})
Task.hasMany(User, {as: 'Users'}) Task.hasMany(User, {as: 'Users'})
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
Task.sync({force: true}).on('success', function() { Task.sync({force: true}).on('success', function() {
User.create({username: 'name'}).on('success', function(user1) { User.create({username: 'name'}).on('success', function(user1) {
User.create({username: 'name2'}).on('success', function(user2) { User.create({username: 'name2'}).on('success', function(user2) {
Task.create({title: 'task1'}).on('success', function(task1) { Task.create({title: 'task1'}).on('success', function(task1) {
Task.create({title: 'task2'}).on('success', function(task2) { Task.create({title: 'task2'}).on('success', function(task2) {
user1.setTasks([task1, task2]).on('success', function() { user1.setTasks([task1, task2]).on('success', function() {
user1.getTasks().on('success', function(tasks) { user1.getTasks().on('success', function(tasks) {
assert.eql(tasks.length, 2) assert.eql(tasks.length, 2)
task2.setUsers([user1, user2]).on('success', function() { task2.setUsers([user1, user2]).on('success', function() {
task2.getUsers().on('success', function(users) { task2.getUsers().on('success', function(users) {
assert.eql(users.length, 2) assert.eql(users.length, 2)
...@@ -188,10 +188,10 @@ module.exports = { ...@@ -188,10 +188,10 @@ module.exports = {
}) })
}) })
}) })
}) })
}) })
}) })
}) })
}) })
...@@ -204,7 +204,7 @@ module.exports = { ...@@ -204,7 +204,7 @@ module.exports = {
Person.hasMany(Person, {as: 'Children'}) Person.hasMany(Person, {as: 'Children'})
Person.hasMany(Person, {as: 'Friends'}) Person.hasMany(Person, {as: 'Friends'})
Person.hasMany(Person, {as: 'CoWorkers'}) Person.hasMany(Person, {as: 'CoWorkers'})
Person.sync({force: true}).on('success', function() { Person.sync({force: true}).on('success', function() {
var modelNames = sequelize.modelManager.models.map(function(model) { return model.tableName }) var modelNames = sequelize.modelManager.models.map(function(model) { return model.tableName })
, expectation = ["Person" + num + "s", "ChildrenPerson" + num + "s", "CoWorkersPerson" + num + "s", "FriendsPerson" + num + "s"] , expectation = ["Person" + num + "s", "ChildrenPerson" + num + "s", "CoWorkersPerson" + num + "s", "FriendsPerson" + num + "s"]
...@@ -212,7 +212,7 @@ module.exports = { ...@@ -212,7 +212,7 @@ module.exports = {
expectation.forEach(function(ex) { expectation.forEach(function(ex) {
assert.eql(modelNames.indexOf(ex) > -1, true) assert.eql(modelNames.indexOf(ex) > -1, true)
}) })
exit(function(){}) exit(function(){})
}) })
}, },
...@@ -223,7 +223,7 @@ module.exports = { ...@@ -223,7 +223,7 @@ module.exports = {
Person.hasMany(Person, {as: 'Children'}) Person.hasMany(Person, {as: 'Children'})
Person.hasMany(Person, {as: 'Friends'}) Person.hasMany(Person, {as: 'Friends'})
Person.hasMany(Person, {as: 'CoWorkers'}) Person.hasMany(Person, {as: 'CoWorkers'})
Person.sync({force: true}).on('success', function() { Person.sync({force: true}).on('success', function() {
Person.create({name: 'foobar'}).on('success', function(person) { Person.create({name: 'foobar'}).on('success', function(person) {
Person.create({name: 'friend'}).on('success', function(friend) { Person.create({name: 'friend'}).on('success', function(friend) {
...@@ -238,4 +238,4 @@ module.exports = { ...@@ -238,4 +238,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'it should correctly add the foreign id': function() { 'it should correctly add the foreign id': function() {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasOne(Task) User.hasOne(Task)
assert.eql(Task.attributes['User'+num+'Id'], "INT") assert.eql(Task.attributes['User'+num+'Id'], "INT")
}, },
...@@ -16,7 +16,7 @@ module.exports = { ...@@ -16,7 +16,7 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true}) var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true})
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasOne(Task) User.hasOne(Task)
assert.eql(Task.attributes['user'+num+'_id'], "INT") assert.eql(Task.attributes['user'+num+'_id'], "INT")
}, },
...@@ -24,7 +24,7 @@ module.exports = { ...@@ -24,7 +24,7 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true}) var User = sequelize.define('User' + num, { username: Sequelize.STRING }, {underscored: true})
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasOne(Task, {foreignKey: 'person_id'}) User.hasOne(Task, {foreignKey: 'person_id'})
assert.eql(Task.attributes.person_id, "INT") assert.eql(Task.attributes.person_id, "INT")
}, },
...@@ -32,9 +32,9 @@ module.exports = { ...@@ -32,9 +32,9 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasOne(Task) User.hasOne(Task)
var u = User.build({username: 'asd'}) var u = User.build({username: 'asd'})
assert.isDefined(u['setTask'+num]) assert.isDefined(u['setTask'+num])
assert.isDefined(u['getTask'+num]) assert.isDefined(u['getTask'+num])
...@@ -43,9 +43,9 @@ module.exports = { ...@@ -43,9 +43,9 @@ module.exports = {
var num = config.rand() var num = config.rand()
var User = sequelize.define('User' + num, { username: Sequelize.STRING }) var User = sequelize.define('User' + num, { username: Sequelize.STRING })
var Task = sequelize.define('Task' + num, { title: Sequelize.STRING }) var Task = sequelize.define('Task' + num, { title: Sequelize.STRING })
User.hasOne(Task, {as: 'Task'}) User.hasOne(Task, {as: 'Task'})
var u = User.build({username: 'asd'}) var u = User.build({username: 'asd'})
assert.isDefined(u.setTask) assert.isDefined(u.setTask)
assert.isDefined(u.getTask) assert.isDefined(u.getTask)
...@@ -53,9 +53,9 @@ module.exports = { ...@@ -53,9 +53,9 @@ module.exports = {
'it should set and get the correct objects': function(exit) { 'it should set and get the correct objects': function(exit) {
var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING }) var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING })
var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING }) var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING })
User.hasOne(Task, {as: 'Task'}) User.hasOne(Task, {as: 'Task'})
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
Task.sync({force: true}).on('success', function() { Task.sync({force: true}).on('success', function() {
User.create({username: 'name'}).on('success', function(user) { User.create({username: 'name'}).on('success', function(user) {
...@@ -74,9 +74,9 @@ module.exports = { ...@@ -74,9 +74,9 @@ module.exports = {
'it should correctly unset the obsolete objects': function(exit) { 'it should correctly unset the obsolete objects': function(exit) {
var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING }) var User = sequelize.define('User' + config.rand(), { username: Sequelize.STRING })
var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING }) var Task = sequelize.define('Task' + config.rand(), { title: Sequelize.STRING })
User.hasOne(Task, {as: 'Task'}) User.hasOne(Task, {as: 'Task'})
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
Task.sync({force: true}).on('success', function() { Task.sync({force: true}).on('success', function() {
User.create({username: 'name'}).on('success', function(user) { User.create({username: 'name'}).on('success', function(user) {
...@@ -104,7 +104,7 @@ module.exports = { ...@@ -104,7 +104,7 @@ module.exports = {
Person.hasOne(Person, {as: 'Mother', foreignKey: 'MotherId'}) Person.hasOne(Person, {as: 'Mother', foreignKey: 'MotherId'})
Person.hasOne(Person, {as: 'Father', foreignKey: 'FatherId'}) Person.hasOne(Person, {as: 'Father', foreignKey: 'FatherId'})
Person.sync({force: true}).on('success', function() { Person.sync({force: true}).on('success', function() {
var p = Person.build() var p = Person.build()
assert.isDefined(p.setFather) assert.isDefined(p.setFather)
...@@ -119,4 +119,4 @@ module.exports = { ...@@ -119,4 +119,4 @@ module.exports = {
Person.hasOne(Person, {as: 'Mother'}) Person.hasOne(Person, {as: 'Mother'})
assert.eql(Person.associations["MotherPerson"+num+"s"].options.foreignKey, 'MotherId') assert.eql(Person.associations["MotherPerson"+num+"s"].options.foreignKey, 'MotherId')
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
var initUsers = function(num, callback) { var initUsers = function(num, callback) {
var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT }) var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT })
, users = [] , users = []
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
while(num--) users.push(User.build({name: 'user' + num, bio: 'foobar'})) while(num--) users.push(User.build({name: 'user' + num, bio: 'foobar'}))
callback(users, User) callback(users, User)
...@@ -64,4 +64,4 @@ module.exports = { ...@@ -64,4 +64,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'save should add a record to the database': function(exit) { 'save should add a record to the database': function(exit) {
...@@ -41,4 +41,4 @@ module.exports = { ...@@ -41,4 +41,4 @@ module.exports = {
}, 10) }, 10)
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
, User = sequelize.define('User', { name: Sequelize.STRING, bio: Sequelize.TEXT }) , User = sequelize.define('User', { name: Sequelize.STRING, bio: Sequelize.TEXT })
module.exports = { module.exports = {
...@@ -18,4 +18,4 @@ module.exports = { ...@@ -18,4 +18,4 @@ module.exports = {
'drop should work': function(exit) { 'drop should work': function(exit) {
User.drop().on('success', function(){exit(function(){})}) User.drop().on('success', function(){exit(function(){})})
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
, User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT }) , User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT })
module.exports = { module.exports = {
...@@ -58,4 +58,4 @@ module.exports = { ...@@ -58,4 +58,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
var initUsers = function(num, callback) { var initUsers = function(num, callback) {
var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT }, {timestamps:false}) var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT }, {timestamps:false})
, users = [] , users = []
User.sync({force: true}).on('success', function() { User.sync({force: true}).on('success', function() {
while(num--) users.push(User.build({name: 'user' + num, bio: 'foobar'})) while(num--) users.push(User.build({name: 'user' + num, bio: 'foobar'}))
callback(users, User) callback(users, User)
...@@ -20,4 +20,4 @@ module.exports = { ...@@ -20,4 +20,4 @@ module.exports = {
exit(function(){}) exit(function(){})
}) })
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'the import should work correctly': function() { 'the import should work correctly': function() {
var Project = sequelize.import(__dirname + "/../project") var Project = sequelize.import(__dirname + "/../project")
assert.isDefined(Project) assert.isDefined(Project)
} }
} }
\ No newline at end of file
var assert = require("assert") var assert = require("assert")
, config = require("./../config") , config = require("./../config")
, Sequelize = require("./../../index") , Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false}) , sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
module.exports = { module.exports = {
'it should sync all models - so instances can be created and saved to the database without failures': function(exit) { 'it should sync all models - so instances can be created and saved to the database without failures': function(exit) {
...@@ -11,7 +11,7 @@ module.exports = { ...@@ -11,7 +11,7 @@ module.exports = {
var Task = sequelize.define('task' + config.rand(), { var Task = sequelize.define('task' + config.rand(), {
title: Sequelize.STRING title: Sequelize.STRING
}) })
sequelize.sync().on('success', function() { sequelize.sync().on('success', function() {
Project.create({title: 'bla'}).on('success', function() { Project.create({title: 'bla'}).on('success', function() {
Task.create({title: 'bla'}).on('success', function() { Task.create({title: 'bla'}).on('success', function() {
...@@ -20,4 +20,4 @@ module.exports = { ...@@ -20,4 +20,4 @@ module.exports = {
}) })
}) })
} }
} }
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!