diff --git a/.travis.yml b/.travis.yml index 219d83f..4318ee6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ before_install: # Setup Node.js version-specific dependencies - "test $TRAVIS_NODE_VERSION != '0.6' || npm rm --save-dev istanbul" - "test $TRAVIS_NODE_VERSION != '0.8' || npm rm --save-dev istanbul" + - "test $TRAVIS_NODE_VERSION = '0.6' -o $TRAVIS_NODE_VERSION = '0.8' || npm install browserify" script: # Run test script, depending on istanbul install - "test ! -z $(npm -ps ls istanbul) || npm test" diff --git a/test/browserify.js b/test/browserify.js new file mode 100644 index 0000000..abc4cb3 --- /dev/null +++ b/test/browserify.js @@ -0,0 +1,46 @@ +var assert = require('assert') +var browserify = tryRequire('browserify') +var http = require('http') +var methods = null +var path = require('path') +var run = browserify ? describe : describe.skip + +run('when browserified', function () { + before(function (done) { + var b = browserify() + + // require methods + b.require(path.join(__dirname, '..'), { + expose: 'methods' + }) + + // bundle and eval + b.bundle(function (err, buf) { + var require = eval(buf.toString()) + methods = require('methods') + done() + }) + }) + + describe('methods', function () { + ['get', 'post', 'put', 'patch', 'delete'].forEach(function (method) { + it('should contain "' + method + '"', function () { + assert.notEqual(methods.indexOf(method), -1) + }) + }) + + it('should only have lower-case entries', function() { + for (var i = 0; i < methods.length; i ++) { + assert(methods[i], methods[i].toLowerCase(), methods[i] + ' is lower-case'); + } + }) + }) +}) + +function tryRequire(name) { + try { + return require(name) + } catch (e) { + return undefined + } +}