diff --git a/lib/model-helper.js b/lib/model-helper.js index 1fafcbd..1cff049 100644 --- a/lib/model-helper.js +++ b/lib/model-helper.js @@ -102,8 +102,8 @@ var modelHelper = module.exports = { generateModelDefinition(rel.modelThrough, out); } } - for(var rm in referencedModels) { - generateModelDefinition(referencedModels[rm], out); + for (var i = 0, n = referencedModels.length; i < n; i++) { + generateModelDefinition(referencedModels[i], out); } return out; }, diff --git a/package.json b/package.json index 9bef826..e1cde4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "loopback-explorer", - "version": "1.2.10", + "version": "1.2.11", "description": "Browse and test your LoopBack app's APIs", "main": "index.js", "scripts": { diff --git a/test/model-helper.test.js b/test/model-helper.test.js index efe720a..98fd4b1 100644 --- a/test/model-helper.test.js +++ b/test/model-helper.test.js @@ -164,6 +164,18 @@ describe('model-helper', function() { expect(defs).has.property('Model5'); expect(defs).has.property('Model6'); }); + + // https://github.com/strongloop/loopback-explorer/issues/49 + it('should work if Array class is extended and no related models are found', + function() { + var Model7 = loopback.createModel('Model7', {street: String}); + Array.prototype.customFunc = function() { + }; + var defs = modelHelper.generateModelDefinition(Model7, {}); + expect(defs).has.property('Model7'); + expect(Object.keys(defs)).has.property('length', 1); + }); + }); describe('hidden properties', function() {