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

Commit 7481c2cb by Sascha Depold

added alias inclusion for findAll

1 parent 1b74d9c6
Showing with 156 additions and 0 deletions
...@@ -834,6 +834,28 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() { ...@@ -834,6 +834,28 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() {
}.bind(this)) //- sequelize.sync }.bind(this)) //- sequelize.sync
}) })
it('fetches associated objects via "as" param for 1:1 associations (1st direction)', function(done) {
this.User.hasOne(this.Task, { as: 'Homework' })
this.Task.belongsTo(this.User)
this.sequelize.sync({ force: true }).success(function() {
this.User.create({ name: 'barfooz' }).success(function(user) {
this.Task.create({ title: 'task' }).success(function(task) {
user.setHomework(task).success(function() {
this.User.findAll({
where: { 'UserWithNames.id': 1 },
include: [ 'Homework' ]
}).success(function(users) {
expect(users[0].task).toBeDefined()
expect(users[0].task.id).toEqual(task.id)
done()
})
}.bind(this)) //- setTask
}.bind(this)) //- Task.create
}.bind(this)) //- User.create
}.bind(this)) //- sequelize.sync
})
it('fetches associated objects for 1:1 associations (2nd direction)', function(done) { it('fetches associated objects for 1:1 associations (2nd direction)', function(done) {
this.User.hasOne(this.Task) this.User.hasOne(this.Task)
this.Task.belongsTo(this.User) this.Task.belongsTo(this.User)
...@@ -856,6 +878,28 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() { ...@@ -856,6 +878,28 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() {
}.bind(this)) //- sequelize.sync }.bind(this)) //- sequelize.sync
}) })
it('fetches associated objects for 1:1 associations (2nd direction)', function(done) {
this.User.hasOne(this.Task)
this.Task.belongsTo(this.User, { as: 'Owner' })
this.sequelize.sync({ force: true }).success(function() {
this.User.create({ name: 'barfooz' }).success(function(user) {
this.Task.create({ title: 'task' }).success(function(task) {
user.setTask(task).success(function() {
this.Task.findAll({
where: { 'Tasks.id': 1 },
include: [ 'Owner' ]
}).success(function(tasks) {
expect(tasks[0].userWithName).toBeDefined()
expect(tasks[0].userWithName.id).toEqual(user.id)
done()
})
}.bind(this)) //- setTask
}.bind(this)) //- Task.create
}.bind(this)) //- User.create
}.bind(this)) //- sequelize.sync
})
it('fetches associated objects for 1:N associations (1st direction)', function(done) { it('fetches associated objects for 1:N associations (1st direction)', function(done) {
this.User.hasMany(this.Task) this.User.hasMany(this.Task)
this.Task.belongsTo(this.User) this.Task.belongsTo(this.User)
...@@ -884,6 +928,34 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() { ...@@ -884,6 +928,34 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() {
}.bind(this)) //- sequelize.sync }.bind(this)) //- sequelize.sync
}) })
it('fetches associated objects for 1:N associations (1st direction)', function(done) {
this.User.hasMany(this.Task, { as: 'Homeworks' })
this.Task.belongsTo(this.User)
this.sequelize.sync({ force: true }).success(function() {
this.User.create({ name: 'barfooz' }).success(function(user) {
this.Task.create({ title: 'task1' }).success(function(task1) {
this.Task.create({ title: 'task2' }).success(function(task2) {
user.setHomeworks([task1, task2]).success(function() {
this.User.findAll({
where: { 'UserWithNames.id': 1 },
include: [ 'Homeworks' ]
}).success(function(users) {
expect(users[0].tasks).toBeDefined()
expect(
users[0].homeworks.map(function(t) { return t.id })
).toEqual(
[ task1.id, task2.id ]
)
done()
})
}.bind(this)) //- setTask
}.bind(this)) //- Task.create
}.bind(this)) //- Task.create
}.bind(this)) //- User.create
}.bind(this)) //- sequelize.sync
})
it('fetches associated objects for 1:N associations (2nd direction)', function(done) { it('fetches associated objects for 1:N associations (2nd direction)', function(done) {
this.User.hasMany(this.Task) this.User.hasMany(this.Task)
this.Task.belongsTo(this.User) this.Task.belongsTo(this.User)
...@@ -908,6 +980,30 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() { ...@@ -908,6 +980,30 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() {
}.bind(this)) //- sequelize.sync }.bind(this)) //- sequelize.sync
}) })
it('fetches associated objects for 1:N associations (2nd direction)', function(done) {
this.User.hasMany(this.Task)
this.Task.belongsTo(this.User, { as: 'Owner' })
this.sequelize.sync({ force: true }).success(function() {
this.User.create({ name: 'barfooz' }).success(function(user) {
this.Task.create({ title: 'task1' }).success(function(task1) {
this.Task.create({ title: 'task2' }).success(function(task2) {
user.setTasks([task1, task2]).success(function() {
this.Task.findAll({
where: { 'Tasks.id': 1 },
include: [ 'Owner' ]
}).success(function(tasks) {
expect(tasks[0].owner).toBeDefined()
expect(tasks[0].owner.name).toEqual(user.name)
done()
})
}.bind(this)) //- setTask
}.bind(this)) //- Task.create
}.bind(this)) //- Task.create
}.bind(this)) //- User.create
}.bind(this)) //- sequelize.sync
})
it('fetches associated objects for N:M associations (1st direction)', function(done) { it('fetches associated objects for N:M associations (1st direction)', function(done) {
this.User.hasMany(this.Task) this.User.hasMany(this.Task)
this.Task.hasMany(this.User) this.Task.hasMany(this.User)
...@@ -938,6 +1034,36 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() { ...@@ -938,6 +1034,36 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() {
}.bind(this)) //- sequelize.sync }.bind(this)) //- sequelize.sync
}) })
it('fetches associated objects for N:M associations (1st direction)', function(done) {
this.User.hasMany(this.Task, { as: 'Homeworks' })
this.Task.hasMany(this.User)
this.sequelize.sync({ force: true }).success(function() {
this.User.create({ name: 'barfooz' }).success(function(user1) {
this.Task.create({ title: 'task1' }).success(function(task1) {
this.Task.create({ title: 'task2' }).success(function(task2) {
user1.setHomeworks([task1, task2]).success(function() {
this.User.findAll({
where: { 'UserWithNames.id': user1.id },
include: [ 'Homeworks' ]
}).success(function(users) {
expect(users[0].homeworks).toBeDefined()
expect(
users[0].homeworks.map(function(t) { return t.id })
).toEqual(
[ task1.id, task2.id ]
)
done()
})
}.bind(this)) //- setTask
}.bind(this)) //- Task.create
}.bind(this)) //- Task.create
}.bind(this)) //- User.create
}.bind(this)) //- sequelize.sync
})
it('fetches associated objects for N:M associations (2nd direction)', function(done) { it('fetches associated objects for N:M associations (2nd direction)', function(done) {
this.User.hasMany(this.Task) this.User.hasMany(this.Task)
this.Task.hasMany(this.User) this.Task.hasMany(this.User)
...@@ -967,6 +1093,36 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() { ...@@ -967,6 +1093,36 @@ describe("[" + Helpers.getTestDialectTeaser() + "] DAOFactory", function() {
}.bind(this)) //- User.create }.bind(this)) //- User.create
}.bind(this)) //- sequelize.sync }.bind(this)) //- sequelize.sync
}) })
it('fetches associated objects for N:M associations (2nd direction)', function(done) {
this.User.hasMany(this.Task)
this.Task.hasMany(this.User, { as: 'Owners' })
this.sequelize.sync({ force: true }).success(function() {
this.User.create({ name: 'barfooz' }).success(function(user1) {
this.Task.create({ title: 'task1' }).success(function(task1) {
this.Task.create({ title: 'task2' }).success(function(task2) {
user1.setTasks([task1, task2]).success(function() {
this.Task.findAll({
where: { 'Tasks.id': task1.id },
include: [ 'Owners' ]
}).success(function(tasks) {
expect(tasks[0].owners).toBeDefined()
expect(
tasks[0].owners.map(function(u) { return u.id })
).toEqual(
[ user1.id ]
)
done()
})
}.bind(this)) //- setTask
}.bind(this)) //- Task.create
}.bind(this)) //- Task.create
}.bind(this)) //- User.create
}.bind(this)) //- sequelize.sync
})
}) })
}) //- describe: findAll }) //- describe: findAll
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!