trying a fix for redis
This commit is contained in:
parent
4c8e4d8e4d
commit
7930af6eba
|
@ -453,90 +453,88 @@ function testOrm(schema) {
|
||||||
if (schema.name !== 'mongodb')
|
if (schema.name !== 'mongodb')
|
||||||
it('hasMany should support additional conditions', function (test) {
|
it('hasMany should support additional conditions', function (test) {
|
||||||
|
|
||||||
// We try to get the first post with a userId != NULL
|
|
||||||
var search = {};
|
|
||||||
if (schema.name === 'mongodb') { // On mongodb, complex conditions are not supported
|
|
||||||
search = {order: 'userId DESC'};
|
|
||||||
} else {
|
|
||||||
search = {where: {userId: {'gt': 0}}};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Finding one post with an existing author associated
|
// Finding one post with an existing author associated
|
||||||
Post.findOne(search, function (err, post) {
|
Post.all(function (err, posts) {
|
||||||
// We could get the user with belongs to relationship but it is better if there is no interactions.
|
// We try to get the first post with a userId != NULL
|
||||||
User.find(post.userId, function(err, user) {
|
for (var i = 0; i < posts.length; i++) {
|
||||||
user.posts({where: {id: post.id}}, function(err, posts) {
|
var post = posts[i];
|
||||||
test.equal(posts.length, 1, 'There should be only 1 post.');
|
if (post.userId !== null) {
|
||||||
test.done();
|
// We could get the user with belongs to relationship but it is better if there is no interactions.
|
||||||
});
|
User.find(post.userId, function(err, user) {
|
||||||
});
|
user.posts({where: {id: post.id}}, function(err, posts) {
|
||||||
|
test.equal(posts.length, 1, 'There should be only 1 post.');
|
||||||
|
test.done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
it('hasMany should be cached', function (test) {
|
it('hasMany should be cached', function (test) {
|
||||||
// We try to get the first post with a userId != NULL
|
|
||||||
var search = {};
|
|
||||||
if (schema.name === 'mongodb') { // On mongodb, complex conditions are not supported
|
|
||||||
search = {order: 'userId DESC'};
|
|
||||||
} else {
|
|
||||||
search = {where: {userId: {'gt': 0}}};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Finding one post with an existing author associated
|
// Finding one post with an existing author associated
|
||||||
Post.findOne(search, function (err, post) {
|
Post.all(function (err, posts) {
|
||||||
// We could get the user with belongs to relationship but it is better if there is no interactions.
|
// We try to get the first post with a userId != NULL
|
||||||
User.find(post.userId, function(err, user) {
|
for (var i = 0; i < posts.length; i++) {
|
||||||
User.create(function(err, voidUser) {
|
var post = posts[i];
|
||||||
Post.create({userId: user.id}, function() {
|
if (post.userId !== null) {
|
||||||
|
// We could get the user with belongs to relationship but it is better if there is no interactions.
|
||||||
|
User.find(post.userId, function(err, user) {
|
||||||
|
User.create(function(err, voidUser) {
|
||||||
|
Post.create({userId: user.id}, function() {
|
||||||
|
|
||||||
// There can't be any concurrency because we are counting requests
|
// There can't be any concurrency because we are counting requests
|
||||||
// We are first testing cases when user has posts
|
// We are first testing cases when user has posts
|
||||||
user.posts(function(err, data) {
|
user.posts(function(err, data) {
|
||||||
var nbInitialRequests = nbSchemaRequests;
|
var nbInitialRequests = nbSchemaRequests;
|
||||||
user.posts(function(err, data2) {
|
user.posts(function(err, data2) {
|
||||||
test.equal(data.length, 2, 'There should be 2 posts.');
|
test.equal(data.length, 2, 'There should be 2 posts.');
|
||||||
test.equal(data.length, data2.length, 'Posts should be the same, since we are loading on the same object.');
|
test.equal(data.length, data2.length, 'Posts should be the same, since we are loading on the same object.');
|
||||||
requestsAreCounted && test.equal(nbInitialRequests, nbSchemaRequests, 'There should not be any request because value is cached.');
|
requestsAreCounted && test.equal(nbInitialRequests, nbSchemaRequests, 'There should not be any request because value is cached.');
|
||||||
|
|
||||||
if (schema.name === 'mongodb') { // for the moment mongodb doesn\'t support additional conditions on hasMany relations (see above)
|
if (schema.name === 'mongodb') { // for the moment mongodb doesn\'t support additional conditions on hasMany relations (see above)
|
||||||
test.done();
|
test.done();
|
||||||
} else {
|
} else {
|
||||||
user.posts({where: {id: data[0].id}}, function(err, data) {
|
user.posts({where: {id: data[0].id}}, function(err, data) {
|
||||||
test.equal(data.length, 1, 'There should be only one post.');
|
test.equal(data.length, 1, 'There should be only one post.');
|
||||||
requestsAreCounted && test.equal(nbInitialRequests + 1, nbSchemaRequests, 'There should be one additional request since we added conditions.');
|
requestsAreCounted && test.equal(nbInitialRequests + 1, nbSchemaRequests, 'There should be one additional request since we added conditions.');
|
||||||
|
|
||||||
user.posts(function(err, data) {
|
user.posts(function(err, data) {
|
||||||
test.equal(data.length, 2, 'Previous get shouldn\'t have changed cached value though, since there was additional conditions.');
|
test.equal(data.length, 2, 'Previous get shouldn\'t have changed cached value though, since there was additional conditions.');
|
||||||
requestsAreCounted && test.equal(nbInitialRequests + 1, nbSchemaRequests, 'There should not be any request because value is cached.');
|
requestsAreCounted && test.equal(nbInitialRequests + 1, nbSchemaRequests, 'There should not be any request because value is cached.');
|
||||||
|
|
||||||
// We are now testing cases when user doesn't have any post
|
// We are now testing cases when user doesn't have any post
|
||||||
voidUser.posts(function(err, data) {
|
voidUser.posts(function(err, data) {
|
||||||
var nbInitialRequests = nbSchemaRequests;
|
var nbInitialRequests = nbSchemaRequests;
|
||||||
voidUser.posts(function(err, data2) {
|
voidUser.posts(function(err, data2) {
|
||||||
test.equal(data.length, 0, 'There shouldn\'t be any posts (1/2).');
|
test.equal(data.length, 0, 'There shouldn\'t be any posts (1/2).');
|
||||||
test.equal(data2.length, 0, 'There shouldn\'t be any posts (2/2).');
|
test.equal(data2.length, 0, 'There shouldn\'t be any posts (2/2).');
|
||||||
requestsAreCounted && test.equal(nbInitialRequests, nbSchemaRequests, 'There should not be any request because value is cached.');
|
requestsAreCounted && test.equal(nbInitialRequests, nbSchemaRequests, 'There should not be any request because value is cached.');
|
||||||
|
|
||||||
voidUser.posts(true, function(err, data3) {
|
voidUser.posts(true, function(err, data3) {
|
||||||
test.equal(data3.length, 0, 'There shouldn\'t be any posts.');
|
test.equal(data3.length, 0, 'There shouldn\'t be any posts.');
|
||||||
requestsAreCounted && test.equal(nbInitialRequests + 1, nbSchemaRequests, 'There should be one additional request since we forced refresh.');
|
requestsAreCounted && test.equal(nbInitialRequests + 1, nbSchemaRequests, 'There should be one additional request since we forced refresh.');
|
||||||
|
|
||||||
test.done();
|
test.done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
break;
|
||||||
});
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue