hapi-swagger
Advanced tools
Comparing version 2.0.0 to 2.1.0
@@ -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 @@ | ||
}) | ||
*/ |
665594
11746
+ Addedjoi@6.8.1(transitive)
- Removedjoi@6.10.16.7.1(transitive)
Updatedjoi@~6.8.1