Fix findByIds test cases

This commit is contained in:
Raymond Feng 2015-02-20 21:14:41 -08:00
parent d5e71f1157
commit 527d5f7a81
1 changed files with 39 additions and 21 deletions

View File

@ -60,9 +60,8 @@ describe('basic-querying', function () {
}); });
describe('findByIds', function () { describe('findByIds', function () {
var createdUsers;
before(function(done) { before(function(done) {
// FIXME: [rfeng] The autogenerated ids are not always 1-6
var people = [ var people = [
{ id: 1, name: 'a', vip: true }, { id: 1, name: 'a', vip: true },
{ id: 2, name: 'b' }, { id: 2, name: 'b' },
@ -71,33 +70,52 @@ describe('basic-querying', function () {
{ id: 5, name: 'e' }, { id: 5, name: 'e' },
{ id: 6, name: 'f' } { id: 6, name: 'f' }
]; ];
// Use automigrate so that serial keys are 1-6
db.automigrate(['User'], function(err) { db.automigrate(['User'], function(err) {
User.create(people, function(err, users) { User.create(people, function(err, users) {
should.not.exist(err);
// Users might be created in parallel and the generated ids can be
// out of sequence
createdUsers = users;
done(); done();
}); });
}); });
}); });
it('should query by ids', function (done) { it('should query by ids', function(done) {
User.findByIds([3, 2, 1], function (err, users) { User.findByIds(
should.exist(users); [createdUsers[2].id, createdUsers[1].id, createdUsers[0].id],
should.not.exist(err); function(err, users) {
var names = users.map(function(u) { return u.name; }); should.exist(users);
names.should.eql(['c', 'b', 'a']); should.not.exist(err);
done(); var names = users.map(function(u) {
}); return u.name;
});
names.should.eql(
[createdUsers[2].name, createdUsers[1].name, createdUsers[0].name]);
done();
});
}); });
it('should query by ids and condition', function (done) { it('should query by ids and condition', function(done) {
User.findByIds([4, 3, 2, 1], User.findByIds([
{ where: { vip: true } }, function (err, users) { createdUsers[0].id,
should.exist(users); createdUsers[1].id,
should.not.exist(err); createdUsers[2].id,
var names = users.map(function(u) { return u.name; }); createdUsers[3].id],
names.should.eql(['d', 'a']); { where: { vip: true } }, function(err, users) {
done(); should.exist(users);
}); should.not.exist(err);
var names = users.map(function(u) {
return u.name;
});
names.should.eql(createdUsers.slice(0, 4).
filter(function(u) {
return u.vip;
}).map(function(u) {
return u.name;
}));
done();
});
}); });
}); });