Check the Array type
See https://github.com/strongloop/loopback-connector-mongodb/issues/21
This commit is contained in:
parent
97c5cfd644
commit
510f5ef6ac
|
@ -1,4 +1,5 @@
|
||||||
var util = require('util');
|
var util = require('util');
|
||||||
|
var Any = require('./types').Types.Any;
|
||||||
|
|
||||||
module.exports = List;
|
module.exports = List;
|
||||||
|
|
||||||
|
@ -32,6 +33,10 @@ function List(items, itemType, parent) {
|
||||||
itemType = itemType[0];
|
itemType = itemType[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(itemType === Array) {
|
||||||
|
itemType = Any;
|
||||||
|
}
|
||||||
|
|
||||||
Object.defineProperty(arr, 'itemType', {
|
Object.defineProperty(arr, 'itemType', {
|
||||||
writable: true,
|
writable: true,
|
||||||
enumerable: false,
|
enumerable: false,
|
||||||
|
|
|
@ -13,6 +13,7 @@ describe('datatypes', function () {
|
||||||
num: Number,
|
num: Number,
|
||||||
bool: Boolean,
|
bool: Boolean,
|
||||||
list: {type: [String]},
|
list: {type: [String]},
|
||||||
|
arr: Array
|
||||||
});
|
});
|
||||||
db.automigrate(function () {
|
db.automigrate(function () {
|
||||||
Model.destroyAll(done);
|
Model.destroyAll(done);
|
||||||
|
@ -23,25 +24,30 @@ describe('datatypes', function () {
|
||||||
var d = new Date, id;
|
var d = new Date, id;
|
||||||
|
|
||||||
Model.create({
|
Model.create({
|
||||||
str: 'hello', date: d, num: '3', bool: 1, list: ['test']
|
str: 'hello', date: d, num: '3', bool: 1, list: ['test'], arr: [1, 'str']
|
||||||
}, function (err, m) {
|
}, function (err, m) {
|
||||||
should.not.exist(err);
|
should.not.exist(err);
|
||||||
should.exist(m && m.id);
|
should.exist(m && m.id);
|
||||||
m.str.should.be.a('string');
|
m.str.should.be.a('string');
|
||||||
m.num.should.be.a('number');
|
m.num.should.be.a('number');
|
||||||
m.bool.should.be.a('boolean');
|
m.bool.should.be.a('boolean');
|
||||||
|
m.list[0].should.be.equal('test');
|
||||||
|
m.arr[0].should.be.equal(1);
|
||||||
|
m.arr[1].should.be.equal('str');
|
||||||
id = m.id;
|
id = m.id;
|
||||||
testFind(testAll);
|
testFind(testAll);
|
||||||
});
|
});
|
||||||
|
|
||||||
function testFind(next) {
|
function testFind(next) {
|
||||||
debugger;
|
|
||||||
Model.findById(id, function (err, m) {
|
Model.findById(id, function (err, m) {
|
||||||
should.not.exist(err);
|
should.not.exist(err);
|
||||||
should.exist(m);
|
should.exist(m);
|
||||||
m.str.should.be.a('string');
|
m.str.should.be.a('string');
|
||||||
m.num.should.be.a('number');
|
m.num.should.be.a('number');
|
||||||
m.bool.should.be.a('boolean');
|
m.bool.should.be.a('boolean');
|
||||||
|
m.list[0].should.be.equal('test');
|
||||||
|
m.arr[0].should.be.equal(1);
|
||||||
|
m.arr[1].should.be.equal('str');
|
||||||
m.date.should.be.an.instanceOf(Date);
|
m.date.should.be.an.instanceOf(Date);
|
||||||
m.date.toString().should.equal(d.toString(), 'Time must match');
|
m.date.toString().should.equal(d.toString(), 'Time must match');
|
||||||
next();
|
next();
|
||||||
|
|
Loading…
Reference in New Issue