New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hapi-swagger

Package Overview
Dependencies
Maintainers
1
Versions
163
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hapi-swagger - npm Package Compare versions

Comparing version 2.0.0 to 2.1.0

6

lib/index.js

@@ -899,3 +899,3 @@ var Hoek = require('hoek'),

return urlStr
},
}

@@ -906,5 +906,5 @@

return(text.lastIndexOf(test) === text.length-1);
},
}
exports._internals = internals;
{
"name": "hapi-swagger",
"description": "A swagger documentation UI generator plugin for hapi",
"version": "2.0.0",
"version": "2.1.0",
"author": "Glenn Jones",

@@ -24,3 +24,3 @@ "repository": {

"hoek": "^2.14.0",
"joi": "~6.7.0",
"joi": "~6.8.1",
"shortid": "^2.2.2"

@@ -34,3 +34,3 @@ },

"chai": "^1.9.2",
"hapi": "^10.0.0",
"hapi": "^10.3.0",
"istanbul": "^0.3.17"

@@ -37,0 +37,0 @@ },

@@ -18,2 +18,3 @@ /*

/*

@@ -126,1 +127,2 @@ var plugin1 = function (server, options, next) {

});
*/
/*
Mocha test
Mocha test for segment prefix depth
*/
var chai = require('chai'),
assert = chai.assert,
swagger = require('../lib/index.js');
var Chai = require('chai'),
Hapi = require('hapi'),
Joi = require('joi'),
Inert = require('inert'),
Vision = require('vision'),
Hoek = require('hoek'),
HapiSwagger = require('../lib/index.js'),
assert = Chai.assert;
var defaultHandler = function(request, reply) {
reply('ok');
},
routes = [
{
method: '*',
path: '/',
handler: defaultHandler,
config: {
tags: ['api']
}
}, {
method: '*',
path: '/one',
handler: defaultHandler,
config: {
tags: ['api']
}
}, {
method: '*',
path: '/one/two',
handler: defaultHandler,
config: {
tags: ['api']
}
}, {
method: '*',
path: '/one/two/three',
handler: defaultHandler,
config: {
tags: ['api']
}
}]
var internals = swagger._internals;
describe('prefix', function() {
var server
beforeEach(function(done) {
server = new Hapi.Server();
server.connection();
done();
});
afterEach(function(done) {
server.stop(function() {
server = null;
done();
});
});
describe('first segment', function() {
beforeEach(function(done) {
server.register([
Inert,
Vision,
{
register: HapiSwagger,
options: {"pathPrefixSize": 1}
}], function(err){
server.start(function(err){
assert.ifError(err);
});
});
server.route(routes);
done();
});
it('GET method added', function(done) {
server.inject({ method: 'GET', url: '/docs '}, function (response) {
//console.log(JSON.stringify(response.result));
assert.equal(response.result.apis.length, 2);
done();
});
});
});
describe('second segment', function() {
beforeEach(function(done) {
server.register([
Inert,
Vision,
{
register: HapiSwagger,
options: {"pathPrefixSize": 2}
}], function(err){
server.start(function(err){
assert.ifError(err);
});
});
server.route(routes);
done();
});
it('GET method added', function(done) {
server.inject({ method: 'GET', url: '/docs '}, function (response) {
//console.log(JSON.stringify(response.result));
assert.equal(response.result.apis.length, 3);
done();
});
});
});
});
/*
No longer works as we can no longer reference internal functions, but left in code for reference
var internals = swagger.options;
describe('prefix test', function() {

@@ -42,1 +174,4 @@

*/

@@ -10,8 +10,182 @@ /*

Vision = require('vision'),
assert = Chai.assert,
swagger = require('../lib/index.js');
Hoek = require('hoek'),
HapiSwagger = require('../lib/index.js'),
assert = Chai.assert;
var internals = swagger._internals;
var routesArr = [
'/movies',
'/movies/',
'/movies/{id}',
'/movies/{id}/',
'/movies/scenes',
'/movies/scenes/',
'/moviescenes',
'/moviescenes/',
'/actor/movies',
'/actor/movies/'
];
var defaultHandler = function(request, reply) {
reply('ok');
};
var routes = routesArr.map(function( path ){
return {
'method': 'GET',
'path': path,
'handler': defaultHandler,
'config': {
'tags': ['api']
}
}
});
describe('route parsing', function() {
var server;
beforeEach(function (done) {
server = new Hapi.Server();
server.connection();
server.register([
Inert,
Vision,
HapiSwagger
], function (err) {
server.start(function (err) {
assert.ifError(err);
});
});
server.route(routes);
done();
});
afterEach(function (done) {
server.stop(function () {
server = null;
done();
});
});
describe('correctly pathed', function() {
it('movies has /movies', function(done) {
server.inject({ method: 'GET', url: '/docs?path=movies'}, function (response) {
assert.equal( hasPath( response.result, '/movies' ), true);
done();
});
});
it('movies has /movies/', function(done) {
server.inject({ method: 'GET', url: '/docs?path=movies'}, function (response) {
assert.equal( hasPath( response.result, '/movies/' ), true);
done();
});
});
it('movies has /movies/{id}', function(done) {
server.inject({ method: 'GET', url: '/docs?path=movies'}, function (response) {
assert.equal( hasPath( response.result, '/movies/{id}' ), true);
done();
});
});
it('movies has /movies/scenes', function(done) {
server.inject({ method: 'GET', url: '/docs?path=movies'}, function (response) {
assert.equal( hasPath( response.result, '/movies/scenes' ), true);
done();
});
});
it('movies has /moviescenes', function(done) {
server.inject({ method: 'GET', url: '/docs?path=movies'}, function (response) {
assert.equal( hasPath( response.result, '/moviescenes' ), false);
done();
});
});
it('movies has /moviescenes/', function(done) {
server.inject({ method: 'GET', url: '/docs?path=movies'}, function (response) {
assert.equal( hasPath( response.result, '/moviescenes/' ), false);
done();
});
});
it('movies has /actor/movies', function(done) {
server.inject({ method: 'GET', url: '/docs?path=movies'}, function (response) {
assert.equal( hasPath( response.result, '/actor/movies' ), false);
done();
});
});
it('moviescenes', function(done) {
server.inject({ method: 'GET', url: '/docs?path=moviescenes'}, function (response) {
assert.equal( hasPath( response.result, '/moviescenes/' ), true);
done();
});
});
it('moviescenes', function(done) {
server.inject({ method: 'GET', url: '/docs?path=moviescenes'}, function (response) {
assert.equal( hasPath( response.result, '/movies' ), false);
done();
});
});
it('moviescenes', function(done) {
server.inject({ method: 'GET', url: '/docs?path=moviescenes'}, function (response) {
assert.equal( hasPath( response.result, '/movies/' ), false);
done();
});
});
it('actor', function(done) {
server.inject({ method: 'GET', url: '/docs?path=actor'}, function (response) {
assert.equal( hasPath( response.result, '/movies' ), false);
done();
});
});
it('actor', function(done) {
server.inject({ method: 'GET', url: '/docs?path=actor'}, function (response) {
assert.equal( hasPath( response.result, '/movies' ), false);
done();
});
});
});
});
// if path in swagger paths
function hasPath( swaggerJSON, path ){
if(swaggerJSON && swaggerJSON.apis){
var i = swaggerJSON.apis.length;
while (i--) {
if(swaggerJSON.apis[i].path === path ){
return true;
}
}
}
return false;
}
/*
// Based on pull request by David Waterston - http://jsfiddle.net/davidwaterston/cC4v8/

@@ -21,12 +195,12 @@ describe('route parsing test', function() {

var routes = [
'/movies',
'/movies/',
'/movies/{id}',
'/movies/{id}/',
'/movies/scenes',
'/movies/scenes/',
'/moviescenes',
'/moviescenes/',
'/actor/movies',
'/actor/movies/'
'/movies',
'/movies/',
'/movies/{id}',
'/movies/{id}/',
'/movies/scenes',
'/movies/scenes/',
'/moviescenes',
'/moviescenes/',
'/actor/movies',
'/actor/movies/'
];

@@ -74,1 +248,4 @@

})
*/
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc