arrow-objectmodel
Advanced tools
Comparing version 0.2.25 to 0.2.26-101
@@ -1,3 +0,1 @@ | ||
// jscs:disable jsDoc | ||
var _ = require('lodash'), | ||
@@ -23,3 +21,3 @@ jsb = require('js-beautify').js_beautify; | ||
fnparams = fnExec.exec(tok[0]), | ||
fnbody = jsb(tok.slice(1, tok.length - 1).map(trimmer()).join('\n'), {'indent-size': 4, 'indent-char': '\t'}), | ||
fnbody = jsb(tok.slice(1, tok.length - 1).map(trimmer()).join('\n'), { 'indent-size': 4, 'indent-char': '\t' }), | ||
result = { | ||
@@ -50,4 +48,4 @@ name: fnparams[1] || 'action', | ||
}), | ||
before: _.isString(this.api.before) ? [this.api.before] : this.api.before, | ||
after: _.isString(this.api.after) ? [this.api.after] : this.api.after, | ||
before: _.isString(this.api.before) ? [ this.api.before ] : this.api.before, | ||
after: _.isString(this.api.after) ? [ this.api.after ] : this.api.after, | ||
response: this.api.response && _.isString(this.api.response) ? this.api.response : this.api.response && this.api.response.name, | ||
@@ -54,0 +52,0 @@ metadata: this.api.metadata, |
@@ -1,3 +0,1 @@ | ||
// jscs:disable jsDoc | ||
const SPEC = '1'; | ||
@@ -4,0 +2,0 @@ |
@@ -1,3 +0,1 @@ | ||
// jscs:disable jsDoc | ||
const SPEC = '1'; | ||
@@ -4,0 +2,0 @@ |
@@ -1,3 +0,1 @@ | ||
// jscs:disable jsDoc | ||
var _ = require('lodash'); | ||
@@ -12,9 +10,9 @@ | ||
function isBuiltinType(o) { | ||
return (o instanceof Number || | ||
o instanceof Object || | ||
o instanceof Array || | ||
o instanceof String || | ||
o instanceof Boolean || | ||
o instanceof Date || | ||
o instanceof RegExp); | ||
return (o instanceof Number | ||
|| o instanceof Object | ||
|| o instanceof Array | ||
|| o instanceof String | ||
|| o instanceof Boolean | ||
|| o instanceof Date | ||
|| o instanceof RegExp); | ||
} | ||
@@ -21,0 +19,0 @@ |
@@ -1,3 +0,1 @@ | ||
// jscs:disable jsDoc | ||
var _ = require('lodash'), | ||
@@ -29,3 +27,3 @@ path = require('path'), | ||
this.metadata = {type: 'unknown'}; | ||
this.metadata = { type: 'unknown' }; | ||
@@ -32,0 +30,0 @@ // pull out the package json details |
{ | ||
"name": "arrow-objectmodel", | ||
"version": "0.2.25", | ||
"version": "0.2.26-101", | ||
"description": "The object model for Arrow", | ||
"main": "index.js", | ||
"scripts": { | ||
"test": "grunt" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git@github.com:appcelerator/arrow-objectmodel.git" | ||
}, | ||
"keywords": [ | ||
"amplify", | ||
"axway", | ||
"appcelerator", | ||
@@ -18,8 +13,8 @@ "arrow", | ||
], | ||
"author": "Jeff Haynie", | ||
"license": "LicenseRef-LICENSE", | ||
"bugs": { | ||
"url": "https://jira.appcelerator.org/browse/API" | ||
"author": { | ||
"name": "Axway", | ||
"email": "support@axway.com", | ||
"url": "https://axway.com" | ||
}, | ||
"homepage": "https://github.com/appcelerator/arrow-objectmodel", | ||
"license": "SEE LICENCE IN LICENSE", | ||
"dependencies": { | ||
@@ -30,13 +25,18 @@ "js-beautify": "^1.5.10", | ||
"devDependencies": { | ||
"arrow": "*", | ||
"grunt": "^1.0.1", | ||
"grunt-cli": "^1.2.0", | ||
"grunt-appc-js": "^1.0.19", | ||
"grunt-contrib-clean": "^1.0.0", | ||
"grunt-mocha-istanbul": "^5.0.2", | ||
"istanbul": "^0.4.1", | ||
"mocha": "^4.0.1", | ||
"should": "^11.2.0", | ||
"wrench": "^1.5.8" | ||
"arrow": "3.1.0-101" | ||
}, | ||
"engines": { | ||
"node": ">= 8" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "https://git.ecd.axway.int/amplify/api-builder" | ||
}, | ||
"scripts": { | ||
"build": "npm run build:dev", | ||
"build:dev": "npm run build:lint && npm run test", | ||
"build:lint": "eslint .", | ||
"clean": "shx rm -rf .nyc_output coverage logs", | ||
"test": "shx rm -rf coverage .nyc-output && cross-env NODE_ENV=development nyc --reporter=lcov --reporter=text-summary mocha test/objectmodel.js --recursive -R spec --exit" | ||
} | ||
} |
@@ -1,11 +0,3 @@ | ||
# Arrow Object Model [](https://magnum.travis-ci.com/appcelerator/arrow-objectmodel) | ||
# Arrow ObjectModel | ||
This project is the object model for [Arrow](http://github.com/appcelerator/arrow) project. | ||
> This software is pre-release and not yet ready for usage. Please don't use this just yet while we're working through testing and finishing it up. Once it's ready, we'll make an announcement about it. | ||
# License | ||
This source code is licensed as part of the Appcelerator Enterprise Platform and subject to the End User License Agreement and Enterprise License and Ordering Agreement. Copyright (c) 2014-2015 by Appcelerator, Inc. All Rights Reserved. This source code is Proprietary and Confidential to Appcelerator, Inc. | ||
This project is the object model for [Arrow](https://www.npmjs.com/package/arrow) project. |
@@ -1,6 +0,4 @@ | ||
// jscs:disable jsDoc | ||
var should = require('should'), | ||
var expect = require('chai').expect, | ||
path = require('path'), | ||
wrench = require('wrench'), | ||
fs = require('fs-extra'), | ||
Arrow = require('arrow'), | ||
@@ -15,3 +13,3 @@ lib = require('../'), | ||
tmpdir = path.join(require('os').tmpdir(), 'omtest-' + Date.now()); | ||
wrench.mkdirSyncRecursive(tmpdir); | ||
fs.mkdirsSync(tmpdir); | ||
}); | ||
@@ -22,3 +20,3 @@ | ||
server.stop(function () { | ||
wrench.rmdirSyncRecursive(tmpdir); | ||
fs.removeSync(tmpdir); | ||
done(); | ||
@@ -31,51 +29,57 @@ }); | ||
it('should be able to serialize from running server', function (callback) { | ||
server = new Arrow({dir: tmpdir, logLevel: 'warn', port: 8082}); | ||
server.start(function (err) { | ||
should(err).not.be.ok; | ||
var objectModel = new lib.ObjectModel(server); | ||
var model = objectModel.toJSON(); | ||
should(model).be.an.object; | ||
should(model).have.property('spec', '1'); | ||
should(model).have.property('server'); | ||
should(model).have.property('config'); | ||
should(model).have.property('apis'); | ||
should(model).have.property('connectors'); | ||
should(model).have.property('models'); | ||
should(model).have.property('blocks'); | ||
should(model).have.property('metadata'); | ||
should(model.server).have.property('port', 8082); | ||
should(model.config).have.property('dir', tmpdir); | ||
should(model.config).have.property('env', 'development'); | ||
should(model.metadata).have.property('type', 'unknown'); | ||
server.stop(callback); | ||
it('[NO TICKET] should be able to serialize from running server', function (done) { | ||
server = new Arrow({ dir: tmpdir, logLevel: 'warn', port: 8082 }); | ||
let err; | ||
server.start(function () { | ||
try { | ||
var objectModel = new lib.ObjectModel(server); | ||
var model = objectModel.toJSON(); | ||
expect(model).to.be.an('object'); | ||
expect(model).to.have.property('spec', '1'); | ||
expect(model).to.have.property('server'); | ||
expect(model).to.have.property('config'); | ||
expect(model).to.have.property('apis'); | ||
expect(model).to.have.property('connectors'); | ||
expect(model).to.have.property('models'); | ||
expect(model).to.have.property('blocks'); | ||
expect(model).to.have.property('metadata'); | ||
expect(model.server).to.have.property('port', 8082); | ||
expect(model.config).to.have.property('dir', tmpdir); | ||
expect(model.config).to.have.property('env', 'development'); | ||
expect(model.metadata).to.have.property('type', 'unknown'); | ||
} catch (e) { | ||
err = e; | ||
} | ||
server.stop((e) => { | ||
done(err || e); | ||
}); | ||
}); | ||
}); | ||
it('should be able to serialize from not running server (loadOnly)', function () { | ||
server = new Arrow({dir: tmpdir, logLevel: 'warn', port: 8082}, true); | ||
it('[NO TICKET] should be able to serialize from not running server (loadOnly)', function () { | ||
server = new Arrow({ dir: tmpdir, logLevel: 'warn', port: 8082 }, true); | ||
var objectModel = new lib.ObjectModel(server); | ||
var model = objectModel.toJSON(); | ||
should(model).be.an.object; | ||
should(model).have.property('spec', '1'); | ||
should(model).have.property('server'); | ||
should(model).have.property('config'); | ||
should(model).have.property('apis'); | ||
should(model).have.property('connectors'); | ||
should(model).have.property('models'); | ||
should(model).have.property('blocks'); | ||
should(model.server).have.property('port', 8082); | ||
should(model.config).have.property('dir', tmpdir); | ||
should(model.config).have.property('env', 'development'); | ||
expect(model).to.be.an('object'); | ||
expect(model).to.have.property('spec', '1'); | ||
expect(model).to.have.property('server'); | ||
expect(model).to.have.property('config'); | ||
expect(model).to.have.property('apis'); | ||
expect(model).to.have.property('connectors'); | ||
expect(model).to.have.property('models'); | ||
expect(model).to.have.property('blocks'); | ||
expect(model.server).to.have.property('port', 8082); | ||
expect(model.config).to.have.deep.property('dir', tmpdir); | ||
expect(model.config).to.have.property('env', 'development'); | ||
}); | ||
it('should be able to serialize model', function () { | ||
server = new Arrow({dir: tmpdir, logLevel: 'warn', port: 8082}, true); | ||
it('[NO TICKET] should be able to serialize model', function () { | ||
server = new Arrow({ dir: tmpdir, logLevel: 'warn', port: 8082 }, true); | ||
var MyModel = Arrow.Model.extend('foo', { | ||
fields: { | ||
readonly: {description: 'readonly', readonly: true}, | ||
writeonly: {description: 'writeonly', writeonly: true}, | ||
defaultfield: {description: 'default'}, | ||
defaultvalue: {description: 'default value', default: 1, type: 'number'}, | ||
name: {description: 'name', name: 'foo', type: String} | ||
readonly: { description: 'readonly', readonly: true }, | ||
writeonly: { description: 'writeonly', writeonly: true }, | ||
defaultfield: { description: 'default' }, | ||
defaultvalue: { description: 'default value', default: 1, type: 'number' }, | ||
name: { description: 'name', name: 'foo', type: String } | ||
} | ||
@@ -86,61 +90,62 @@ }); | ||
var model = objectModel.toJSON(); | ||
should(model).be.an.object; | ||
should(model).have.property('spec', '1'); | ||
should(model).have.property('server'); | ||
should(model).have.property('config'); | ||
should(model).have.property('apis'); | ||
should(model).have.property('connectors'); | ||
should(model).have.property('models'); | ||
should(model).have.property('blocks'); | ||
should(model.server).have.property('port', 8082); | ||
should(model.config).have.property('dir', tmpdir); | ||
should(model.config).have.property('env', 'development'); | ||
should(model.models).have.property('foo'); | ||
should(model.models.foo).have.property('spec', '1'); | ||
should(model.models.foo).have.property('kind', 'model'); | ||
should(model.models.foo).have.property('name', 'foo'); | ||
should(model.models.foo).have.property('autogen', true); | ||
should(model.models.foo).have.property('metadata'); | ||
should(model.models.foo).have.property('fields'); | ||
should(model.models.foo).have.property('actions'); | ||
should(model.models.foo).have.property('plural'); | ||
should(model.models.foo).have.property('singular'); | ||
should(model.models.foo.fields).have.property('readonly'); | ||
should(model.models.foo.fields.readonly).have.property('description', 'readonly'); | ||
should(model.models.foo.fields.readonly).have.property('required', false); | ||
should(model.models.foo.fields.readonly).have.property('readonly', true); | ||
should(model.models.foo.fields.readonly).have.property('writeonly', false); | ||
should(model.models.foo.fields.readonly).have.property('optional', true); | ||
should(model.models.foo.fields).have.property('writeonly'); | ||
should(model.models.foo.fields.writeonly).have.property('description', 'writeonly'); | ||
should(model.models.foo.fields.writeonly).have.property('required', false); | ||
should(model.models.foo.fields.writeonly).have.property('writeonly', true); | ||
should(model.models.foo.fields.writeonly).have.property('readonly', false); | ||
should(model.models.foo.fields.writeonly).have.property('optional', true); | ||
should(model.models.foo.fields).have.property('defaultfield'); | ||
should(model.models.foo.fields.defaultfield).have.property('description', 'default'); | ||
should(model.models.foo.fields.defaultfield).have.property('required', false); | ||
should(model.models.foo.fields.defaultfield).have.property('writeonly', false); | ||
should(model.models.foo.fields.defaultfield).have.property('readonly', false); | ||
should(model.models.foo.fields.defaultfield).have.property('optional', true); | ||
should(model.models.foo.fields).have.property('defaultvalue'); | ||
should(model.models.foo.fields.defaultvalue).have.property('description', 'default value'); | ||
should(model.models.foo.fields.defaultvalue).have.property('required', false); | ||
should(model.models.foo.fields.defaultvalue).have.property('writeonly', false); | ||
should(model.models.foo.fields.defaultvalue).have.property('readonly', false); | ||
should(model.models.foo.fields.defaultvalue).have.property('optional', true); | ||
should(model.models.foo.fields.defaultvalue).have.property('default', 1); | ||
should(model.models.foo.fields).have.property('name'); | ||
should(model.models.foo.fields.name).have.property('description', 'name'); | ||
should(model.models.foo.fields.name).have.property('required', false); | ||
should(model.models.foo.fields.name).have.property('writeonly', false); | ||
should(model.models.foo.fields.name).have.property('readonly', false); | ||
should(model.models.foo.fields.name).have.property('optional', true); | ||
should(model.models.foo.fields.name).have.property('name', 'foo'); | ||
should(model.models.foo.fields.name).have.property('type', 'string'); | ||
should(model.models.foo.fields.defaultvalue).have.property('type', 'number'); | ||
expect(model).to.be.an('object'); | ||
expect(model).to.have.property('spec', '1'); | ||
expect(model).to.have.property('server'); | ||
expect(model).to.have.property('config'); | ||
expect(model).to.have.property('apis'); | ||
expect(model).to.have.property('connectors'); | ||
expect(model).to.have.property('models'); | ||
expect(model).to.have.property('blocks'); | ||
expect(model.server).to.have.property('port', 8082); | ||
expect(model.config).to.have.deep.property('dir', tmpdir); | ||
expect(model.config).to.have.property('env', 'development'); | ||
expect(model.models).to.have.property('foo'); | ||
expect(model.models.foo).to.have.property('spec', '1'); | ||
expect(model.models.foo).to.have.property('kind', 'model'); | ||
expect(model.models.foo).to.have.property('name', 'foo'); | ||
expect(model.models.foo).to.have.property('autogen', true); | ||
expect(model.models.foo).to.have.property('metadata'); | ||
expect(model.models.foo).to.have.property('fields'); | ||
expect(model.models.foo).to.have.property('actions'); | ||
expect(model.models.foo).to.have.property('plural'); | ||
expect(model.models.foo).to.have.property('singular'); | ||
expect(model.models.foo.fields).to.have.property('readonly'); | ||
expect(model.models.foo.fields.readonly).to.have.property('description', 'readonly'); | ||
expect(model.models.foo.fields.readonly).to.have.property('required', false); | ||
expect(model.models.foo.fields.readonly).to.have.property('readonly', true); | ||
expect(model.models.foo.fields.readonly).to.have.property('writeonly', false); | ||
expect(model.models.foo.fields.readonly).to.have.property('optional', true); | ||
expect(model.models.foo.fields).to.have.property('writeonly'); | ||
expect(model.models.foo.fields.writeonly).to.have.property('description', 'writeonly'); | ||
expect(model.models.foo.fields.writeonly).to.have.property('required', false); | ||
expect(model.models.foo.fields.writeonly).to.have.property('writeonly', true); | ||
expect(model.models.foo.fields.writeonly).to.have.property('readonly', false); | ||
expect(model.models.foo.fields.writeonly).to.have.property('optional', true); | ||
expect(model.models.foo.fields).to.have.property('defaultfield'); | ||
expect(model.models.foo.fields.defaultfield).to.have.property('description', 'default'); | ||
expect(model.models.foo.fields.defaultfield).to.have.property('required', false); | ||
expect(model.models.foo.fields.defaultfield).to.have.property('writeonly', false); | ||
expect(model.models.foo.fields.defaultfield).to.have.property('readonly', false); | ||
expect(model.models.foo.fields.defaultfield).to.have.property('optional', true); | ||
expect(model.models.foo.fields).to.have.property('defaultvalue'); | ||
expect(model.models.foo.fields.defaultvalue).to.have.property('description', 'default value'); | ||
expect(model.models.foo.fields.defaultvalue).to.have.property('required', false); | ||
expect(model.models.foo.fields.defaultvalue).to.have.property('writeonly', false); | ||
expect(model.models.foo.fields.defaultvalue).to.have.property('readonly', false); | ||
expect(model.models.foo.fields.defaultvalue).to.have.property('optional', true); | ||
expect(model.models.foo.fields.defaultvalue).to.have.property('default', 1); | ||
expect(model.models.foo.fields).to.have.property('name'); | ||
expect(model.models.foo.fields.name).to.have.property('description', 'name'); | ||
expect(model.models.foo.fields.name).to.have.property('required', false); | ||
expect(model.models.foo.fields.name).to.have.property('writeonly', false); | ||
expect(model.models.foo.fields.name).to.have.property('readonly', false); | ||
expect(model.models.foo.fields.name).to.have.property('optional', true); | ||
expect(model.models.foo.fields.name).to.have.property('name', 'foo'); | ||
expect(model.models.foo.fields.name).to.have.property('type', 'string'); | ||
expect(model.models.foo.fields.defaultvalue).to.have.property('type', 'number'); | ||
}); | ||
it('should be able to set nickname on api', function (done) { | ||
server = new Arrow({dir: tmpdir, logLevel: 'warn', port: 8082}); | ||
it('[NO TICKET] should be able to set nickname on api', function (done) { | ||
server = new Arrow({ dir: tmpdir, logLevel: 'warn', port: 8082 }); | ||
let err; | ||
var MyAPIGet = Arrow.API.extend({ | ||
@@ -152,3 +157,3 @@ group: 'foo', | ||
description: 'foo', | ||
action: function (req, resp, next) {} | ||
action: function (req, resp, next) {} // eslint-disable-line | ||
}); | ||
@@ -161,50 +166,56 @@ var MyAPIPut = Arrow.API.extend({ | ||
description: 'foo', | ||
action: function (req, resp, next) {} | ||
action: function (req, resp, next) {} // eslint-disable-line | ||
}); | ||
server.addAPI(MyAPIGet); | ||
server.addAPI(MyAPIPut); | ||
server.start(function (err) { | ||
should(err).not.be.ok; | ||
var api1 = server.getAPI('/foo', 'GET'); | ||
should(api1.nickname).be.eql('fooget'); | ||
var api2 = server.getAPI('/foo', 'PUT'); | ||
should(api2.nickname).be.eql('fooput'); | ||
server.start(function (er) { | ||
try { | ||
expect(er).to.not.be.ok; | ||
var api1 = server.getAPI('/foo', 'GET'); | ||
expect(api1.nickname).to.be.eql('fooget'); | ||
var api2 = server.getAPI('/foo', 'PUT'); | ||
expect(api2.nickname).to.be.eql('fooput'); | ||
var API = require('../lib/api'); | ||
var api = new API(server, api1); | ||
api = api.toJSON(); | ||
should(api).have.property('spec', '1'); | ||
should(api).have.property('kind', 'api'); | ||
should(api).have.property('name', 'GET /foo'); | ||
should(api).have.property('description', 'foo'); | ||
should(api).have.property('path', '/foo'); | ||
should(api).have.property('method', 'GET'); | ||
should(api).have.property('generated', false); | ||
should(api).have.property('nickname', 'fooget'); | ||
should(api).have.property('action'); | ||
should(api.action).have.property('name', 'action'); | ||
should(api.action).have.property('args', ['req', 'resp', 'next']); | ||
should(api.action).have.property('body', ''); | ||
var API = require('../lib/api'); | ||
var api = new API(server, api1); | ||
api = api.toJSON(); | ||
expect(api).to.have.property('spec', '1'); | ||
expect(api).to.have.property('kind', 'api'); | ||
expect(api).to.have.property('name', 'GET /foo'); | ||
expect(api).to.have.property('description', 'foo'); | ||
expect(api).to.have.property('path', '/foo'); | ||
expect(api).to.have.property('method', 'GET'); | ||
expect(api).to.have.property('generated', false); | ||
expect(api).to.have.property('nickname', 'fooget'); | ||
expect(api).to.have.property('action'); | ||
expect(api.action).to.have.property('name', 'action'); | ||
expect(api.action).to.have.deep.property('args', [ 'req', 'resp', 'next' ]); | ||
expect(api.action).to.have.property('body', ''); | ||
api = new API(server, api2); | ||
api = api.toJSON(); | ||
should(api).have.property('spec', '1'); | ||
should(api).have.property('kind', 'api'); | ||
should(api).have.property('name', 'PUT /foo'); | ||
should(api).have.property('description', 'foo'); | ||
should(api).have.property('path', '/foo'); | ||
should(api).have.property('method', 'PUT'); | ||
should(api).have.property('generated', false); | ||
should(api).have.property('nickname', 'fooput'); | ||
should(api).have.property('action'); | ||
should(api.action).have.property('name', 'action'); | ||
should(api.action).have.property('args', ['req', 'resp', 'next']); | ||
should(api.action).have.property('body', ''); | ||
server.stop(done); | ||
api = new API(server, api2); | ||
api = api.toJSON(); | ||
expect(api).to.have.property('spec', '1'); | ||
expect(api).to.have.property('kind', 'api'); | ||
expect(api).to.have.property('name', 'PUT /foo'); | ||
expect(api).to.have.property('description', 'foo'); | ||
expect(api).to.have.property('path', '/foo'); | ||
expect(api).to.have.property('method', 'PUT'); | ||
expect(api).to.have.property('generated', false); | ||
expect(api).to.have.property('nickname', 'fooput'); | ||
expect(api).to.have.property('action'); | ||
expect(api.action).to.have.property('name', 'action'); | ||
expect(api.action).to.have.deep.property('args', [ 'req', 'resp', 'next' ]); | ||
expect(api.action).to.have.property('body', ''); | ||
} catch (e) { | ||
err = e; | ||
} | ||
server.stop((e) => { | ||
done(err || e); | ||
}); | ||
}); | ||
}); | ||
it('should be able to hide apis', function (done) { | ||
server = new Arrow({dir: tmpdir, logLevel: 'warn', port: 8082}); | ||
it('[NO TICKET] should be able to hide apis', function (done) { | ||
server = new Arrow({ dir: tmpdir, logLevel: 'warn', port: 8082 }); | ||
let err; | ||
var MyAPIGet = Arrow.API.extend({ | ||
@@ -217,28 +228,33 @@ group: 'foo', | ||
description: 'foo', | ||
action: function (req, resp, next) {} | ||
action: function (req, resp, next) {} // eslint-disable-line | ||
}); | ||
server.addAPI(MyAPIGet); | ||
server.start(function (err) { | ||
should(err).not.be.ok; | ||
var api1 = server.getAPI('/foo', 'GET'); | ||
should(api1.nickname).be.eql('fooget'); | ||
server.start(function (er) { | ||
try { | ||
expect(er).to.not.be.ok; | ||
var api1 = server.getAPI('/foo', 'GET'); | ||
expect(api1.nickname).to.be.eql('fooget'); | ||
var API = require('../lib/api'); | ||
var api = new API(server, api1); | ||
api = api.toJSON(); | ||
should(api).have.property('spec', '1'); | ||
should(api).have.property('kind', 'api'); | ||
should(api).have.property('name', 'GET /foo'); | ||
should(api).have.property('description', 'foo'); | ||
should(api).have.property('path', '/foo'); | ||
should(api).have.property('method', 'GET'); | ||
should(api).have.property('generated', false); | ||
should(api).have.property('documented', false); | ||
should(api).have.property('nickname', 'fooget'); | ||
should(api).have.property('action'); | ||
should(api.action).have.property('name', 'action'); | ||
should(api.action).have.property('args', ['req', 'resp', 'next']); | ||
should(api.action).have.property('body', ''); | ||
server.stop(done); | ||
var API = require('../lib/api'); | ||
var api = new API(server, api1); | ||
api = api.toJSON(); | ||
expect(api).to.have.property('spec', '1'); | ||
expect(api).to.have.property('kind', 'api'); | ||
expect(api).to.have.property('name', 'GET /foo'); | ||
expect(api).to.have.property('description', 'foo'); | ||
expect(api).to.have.property('path', '/foo'); | ||
expect(api).to.have.property('method', 'GET'); | ||
expect(api).to.have.property('generated', false); | ||
expect(api).to.have.property('documented', false); | ||
expect(api).to.have.property('nickname', 'fooget'); | ||
expect(api).to.have.property('action'); | ||
expect(api.action).to.have.property('name', 'action'); | ||
expect(api.action).to.have.deep.property('args', [ 'req', 'resp', 'next' ]); | ||
expect(api.action).to.have.property('body', ''); | ||
} catch (e) { | ||
err = e; | ||
} | ||
server.stop((e) => { | ||
done(err || e); | ||
}); | ||
}); | ||
@@ -245,0 +261,0 @@ }); |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
1
21194
13
530
3
4
2