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

Commit 47f470c6 by sdepold

moved specs

1 parent 38826cac
Showing with 67 additions and 67 deletions
...@@ -247,4 +247,71 @@ describe('Model', function() { ...@@ -247,4 +247,71 @@ describe('Model', function() {
}); });
}); });
}) })
describe('isNewRecord', function() {
var User = null
var setup = function() {
Helpers.async(function(done) {
User = sequelize.define('User', { username: Sequelize.STRING })
User.sync({ force: true }).success(done)
})
}
beforeEach(function() { Helpers.dropAllTables(); setup() })
afterEach(function() { Helpers.dropAllTables() })
it('returns true for non-saved objects', function() {
var user = User.build({ username: 'user' })
expect(user.id).toBeNull()
expect(user.isNewRecord).toBeTruthy()
})
it("returns false for saved objects", function() {
Helpers.async(function(done) {
User.build({ username: 'user' }).save().success(function(user) {
expect(user.isNewRecord).toBeFalsy()
done()
})
})
})
it("returns false for created objects", function() {
Helpers.async(function(done) {
User.create({ username: 'user' }).success(function(user) {
expect(user.isNewRecord).toBeFalsy()
done()
})
})
})
it("returns false for objects found by find method", function() {
Helpers.async(function(done) {
User.create({ username: 'user' }).success(function(user) {
User.find(user.id).success(function(user) {
expect(user.isNewRecord).toBeFalsy()
done()
})
})
})
})
it("returns false for objects found by findAll method", function() {
var chainer = new Sequelize.Utils.QueryChainer
for(var i = 0; i < 10; i++)
chainer.add(User.create({ username: 'user' }))
Helpers.async(function(done) {
chainer.run().success(function() {
User.findAll().success(function(users) {
users.forEach(function(u) {
expect(u.isNewRecord).toBeFalsy()
})
done()
})
})
})
})
})
}) })
var assert = require("assert")
, config = require("./../config")
, Sequelize = require("./../../index")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false, define: { charset: 'latin1' }})
var initUsers = function(num, callback) {
var User = sequelize.define('User' + config.rand(), { name: Sequelize.STRING, bio: Sequelize.TEXT })
, users = []
User.sync({force: true}).on('success', function() {
while(num--) users.push(User.build({name: 'user' + num, bio: 'foobar'}))
callback(users, User)
})
}
module.exports = {
'build should not create database entries': function(exit) {
initUsers(1, function(users, User) {
assert.isNull(users[0].id)
assert.eql(users[0].isNewRecord, true)
exit(function(){})
})
},
'should be false for saved objects': function(exit) {
initUsers(1, function(users, User) {
users[0].save().on('success', function(user) {
assert.eql(user.isNewRecord, false)
exit(function(){})
})
})
},
'should be false for created objects': function(exit) {
initUsers(1, function(users, User) {
User.create({name: 'user'}).on('success', function(user) {
assert.eql(user.isNewRecord, false)
exit(function(){})
})
})
},
'should be false for find': function(exit) {
initUsers(1, function(users, User) {
User.create({name: 'user'}).on('success', function(user) {
User.find(user.id).on('success', function(user) {
assert.eql(user.isNewRecord, false)
exit(function(){})
})
})
})
},
'should be false for findAll': function(exit) {
var chainer = new Sequelize.Utils.QueryChainer
initUsers(10, function(users, User) {
users.forEach(function(user) {
chainer.add(user.save())
})
chainer.run().on('success', function() {
User.findAll().on('success', function(users) {
users.forEach(function(u) {
assert.eql(u.isNewRecord, false)
})
exit(function() {})
})
})
})
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!