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

Commit a048f1d2 by Sascha Depold

moved Sequelize instantiation to global variable + tests for sqlQueryFor

1 parent 0034cb9f
Showing with 34 additions and 8 deletions
require(__dirname + "/../sequelize") require(__dirname + "/../sequelize")
var s = new Sequelize('sequelize_test', 'test', 'test')
module.exports = { module.exports = {
'test constants': function(assert) { 'test constants': function(assert) {
assert.isNotUndefined(Sequelize.STRING) assert.isNotUndefined(Sequelize.STRING)
...@@ -10,41 +12,64 @@ module.exports = { ...@@ -10,41 +12,64 @@ module.exports = {
assert.isNotNull(Sequelize.INTEGER) assert.isNotNull(Sequelize.INTEGER)
}, },
'the constructor sets config correctly': function(assert){ 'the constructor sets config correctly': function(assert){
var s = new Sequelize('sequelize_test', 'test', 'test')
assert.equal(s.config.database, 'sequelize_test') assert.equal(s.config.database, 'sequelize_test')
assert.equal(s.config.username, 'test') assert.equal(s.config.username, 'test')
assert.equal(s.config.password, 'test') assert.equal(s.config.password, 'test')
}, },
'the constructor initializes empty tables hash': function(assert) { 'the constructor initializes empty tables hash': function(assert) {
var s = new Sequelize('sequelize_test', 'test', 'test')
assert.isNotUndefined(s.tables) assert.isNotUndefined(s.tables)
assert.isNotNull(s.tables) assert.isNotNull(s.tables)
assert.eql(s.tables, {}) assert.eql(s.tables, {})
}, },
'define should return a function': function(assert){ 'define should return a function': function(assert){
var s = new Sequelize('sequelize_test', 'test', 'test')
var Day = s.define('Day', { name: Sequelize.TEXT }) var Day = s.define('Day', { name: Sequelize.TEXT })
assert.equal(typeof Day, 'function') assert.equal(typeof Day, 'function')
}, },
'define should store attributes': function(assert) { 'define should store attributes': function(assert) {
var s = new Sequelize('sequelize_test', 'test', 'test')
var Day = s.define('Day', { name: Sequelize.TEXT }) var Day = s.define('Day', { name: Sequelize.TEXT })
assert.isNotUndefined(Day.attributes) assert.isNotUndefined(Day.attributes)
assert.isNotNull(Day.attributes) assert.isNotNull(Day.attributes)
assert.eql(Day.attributes, { name: Sequelize.TEXT, createdAt: "DATETIME NOT NULL", updatedAt: "DATETIME NOT NULL"}) assert.eql(Day.attributes, { name: Sequelize.TEXT, createdAt: "DATETIME NOT NULL", updatedAt: "DATETIME NOT NULL"})
}, },
'define should add new table to tables': function(assert) { 'define should add new table to tables': function(assert) {
var s = new Sequelize('sequelize_test', 'test', 'test')
var Day = s.define('Day', { name: Sequelize.TEXT }) var Day = s.define('Day', { name: Sequelize.TEXT })
assert.includes(SequelizeHelper.Hash.keys(Day.sequelize.tables), 'Day') assert.includes(SequelizeHelper.Hash.keys(Day.sequelize.tables), 'Day')
}, },
'tableNames should be an empty array if no tables are specified': function(assert){ 'tableNames should be an empty array if no tables are specified': function(assert){
var s = new Sequelize('sequelize_test', 'test', 'test') var s2 = new Sequelize('sequelize_test', 'test', 'test')
assert.deepEqual(s.tableNames, []) assert.deepEqual(s2.tableNames, [])
}, },
'tableNames should be no empty array if tables are specified': function(assert) { 'tableNames should be no empty array if tables are specified': function(assert) {
var s = new Sequelize('sequelize_test', 'test', 'test')
s.define('Day', { name: Sequelize.TEXT }) s.define('Day', { name: Sequelize.TEXT })
assert.deepEqual(s.tableNames, ['Days']) assert.deepEqual(s.tableNames, ['Days'])
},
'sqlQueryFor: create': function(assert) {
var query = Sequelize.sqlQueryFor('create', { table: 'Foo', fields: 'a INT' })
assert.equal(query, "CREATE TABLE IF NOT EXISTS Foo (a INT)")
},
'sqlQueryFor: drop': function(assert) {
var query = Sequelize.sqlQueryFor('drop', { table: 'Foo' })
assert.equal(query, "DROP TABLE IF EXISTS Foo")
},
'sqlQueryFor: select': function(assert) {
assert.equal(Sequelize.sqlQueryFor('select', { table: 'Foo'}), "SELECT * FROM Foo")
assert.equal(Sequelize.sqlQueryFor('select', { table: 'Foo', fields: 'id'}), "SELECT id FROM Foo")
assert.equal(Sequelize.sqlQueryFor('select', { table: 'Foo', where: 'id = 1'}), "SELECT * FROM Foo WHERE id = 1")
assert.equal(Sequelize.sqlQueryFor('select', { table: 'Foo', order: 'id DESC'}), "SELECT * FROM Foo ORDER BY id DESC")
assert.equal(Sequelize.sqlQueryFor('select', { table: 'Foo', group: 'name'}), "SELECT * FROM Foo GROUP BY name")
assert.equal(Sequelize.sqlQueryFor('select', { table: 'Foo', limit: 1}), "SELECT * FROM Foo LIMIT 1")
assert.equal(Sequelize.sqlQueryFor('select', { table: 'Foo', offset: 10, limit: 1}), "SELECT * FROM Foo LIMIT 10, 1")
},
'sqlQueryFor: insert': function(assert) {
var query = Sequelize.sqlQueryFor('insert', { table: 'Foo', fields: 'foo', values: "'bar'" })
assert.equal(query, "INSERT INTO Foo (foo) VALUES ('bar')")
},
'sqlQueryFor: update': function(assert) {
var query = Sequelize.sqlQueryFor('update', { table: 'Foo', values: "foo=1", id: 2 })
assert.equal(query, "UPDATE Foo SET foo=1 WHERE id = 2")
},
'sqlQueryFor: delete': function(assert) {
var query = Sequelize.sqlQueryFor('delete', {table: 'Foo', id: 2})
assert.equal(query, "DELETE FROM Foo WHERE id = 2 LIMIT 1")
} }
} }
\ 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!