From b1d919462216c7040a48dd15ac2fa39b4df80df0 Mon Sep 17 00:00:00 2001 From: Matt Zabriskie Date: Fri, 20 Nov 2015 11:36:50 -0700 Subject: [PATCH 1/5] Fixing file system case issue --- test/specs/helpers/buildUrl.spec.js | 65 ----------------------------- 1 file changed, 65 deletions(-) delete mode 100644 test/specs/helpers/buildUrl.spec.js diff --git a/test/specs/helpers/buildUrl.spec.js b/test/specs/helpers/buildUrl.spec.js deleted file mode 100644 index fea4e00..0000000 --- a/test/specs/helpers/buildUrl.spec.js +++ /dev/null @@ -1,65 +0,0 @@ -var buildURL = require('../../../lib/helpers/buildURL'); - -describe('helpers::buildURL', function () { - it('should support null params', function () { - expect(buildURL('/foo')).toEqual('/foo'); - }); - - it('should support params', function () { - expect(buildURL('/foo', { - foo: 'bar' - })).toEqual('/foo?foo=bar'); - }); - - it('should support object params', function () { - expect(buildURL('/foo', { - foo: { - bar: 'baz' - } - })).toEqual('/foo?foo=' + encodeURI('{"bar":"baz"}')); - }); - - it('should support date params', function () { - var date = new Date(); - - expect(buildURL('/foo', { - date: date - })).toEqual('/foo?date=' + date.toISOString()); - }); - - it('should support array params', function () { - expect(buildURL('/foo', { - foo: ['bar', 'baz'] - })).toEqual('/foo?foo[]=bar&foo[]=baz'); - }); - - it('should support special char params', function () { - expect(buildURL('/foo', { - foo: '@:$, ' - })).toEqual('/foo?foo=@:$,+'); - }); - - it('should support existing params', function () { - expect(buildURL('/foo?foo=bar', { - bar: 'baz' - })).toEqual('/foo?foo=bar&bar=baz'); - }); - - it('should support "length" parameter', function () { - expect(buildURL('/foo', { - query: 'bar', - start: 0, - length: 5 - })).toEqual('/foo?query=bar&start=0&length=5'); - }); - - it('should use serializer if provided', function () { - serializer = sinon.stub(); - params = {foo: 'bar'}; - serializer.returns('foo=bar'); - expect(buildURL('/foo', params, serializer)).toEqual('/foo?foo=bar'); - expect(serializer.calledOnce).toBe(true); - expect(serializer.calledWith(params)).toBe(true); - }) -}); - From d1940f52bc05a90507df54771a5331da05b0d3c5 Mon Sep 17 00:00:00 2001 From: Matt Zabriskie Date: Fri, 20 Nov 2015 11:37:41 -0700 Subject: [PATCH 2/5] Restoring buildURL tests --- test/specs/helpers/buildURL.spec.js | 66 +++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/specs/helpers/buildURL.spec.js diff --git a/test/specs/helpers/buildURL.spec.js b/test/specs/helpers/buildURL.spec.js new file mode 100644 index 0000000..453c1f9 --- /dev/null +++ b/test/specs/helpers/buildURL.spec.js @@ -0,0 +1,66 @@ +var buildURL = require('../../../lib/helpers/buildURL'); + +describe('helpers::buildURL', function () { + it('should support null params', function () { + expect(buildURL('/foo')).toEqual('/foo'); + }); + + it('should support params', function () { + expect(buildURL('/foo', { + foo: 'bar' + })).toEqual('/foo?foo=bar'); + }); + + it('should support object params', function () { + expect(buildURL('/foo', { + foo: { + bar: 'baz' + } + })).toEqual('/foo?foo=' + encodeURI('{"bar":"baz"}')); + }); + + it('should support date params', function () { + var date = new Date(); + + expect(buildURL('/foo', { + date: date + })).toEqual('/foo?date=' + date.toISOString()); + }); + + it('should support array params', function () { + expect(buildURL('/foo', { + foo: ['bar', 'baz'] + })).toEqual('/foo?foo[]=bar&foo[]=baz'); + }); + + it('should support special char params', function () { + expect(buildURL('/foo', { + foo: '@:$, ' + })).toEqual('/foo?foo=@:$,+'); + }); + + it('should support existing params', function () { + expect(buildURL('/foo?foo=bar', { + bar: 'baz' + })).toEqual('/foo?foo=bar&bar=baz'); + }); + + it('should support "length" parameter', function () { + expect(buildURL('/foo', { + query: 'bar', + start: 0, + length: 5 + })).toEqual('/foo?query=bar&start=0&length=5'); + }); + + it('should use serializer if provided', function () { + serializer = sinon.stub(); + params = {foo: 'bar'}; + serializer.returns('foo=bar'); + expect(buildURL('/foo', params, serializer)).toEqual('/foo?foo=bar'); + expect(serializer.calledOnce).toBe(true); + expect(serializer.calledWith(params)).toBe(true); + }) +}); + + From 7da605cf3a469bd0953cc2a27fcbff4e3ab4f123 Mon Sep 17 00:00:00 2001 From: Matt Zabriskie Date: Fri, 20 Nov 2015 11:59:03 -0700 Subject: [PATCH 3/5] Use locally installed grunt for running tests --- .travis.yml | 2 -- package.json | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8b8a8b9..f971875 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,5 @@ language: node_js email: on_failure: change on_success: never -before_script: - - npm install -g grunt-cli after_success: - npm run coveralls diff --git a/package.json b/package.json index 2378597..8f464d8 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Promise based HTTP client for the browser and node.js", "main": "index.js", "scripts": { - "test": "grunt test", + "test": "./node_modules/.bin/grunt test", "start": "node ./sandbox/server.js", "examples": "node ./examples/server.js", "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js" From 54be2807291db6f0f214fb56c35db15618fbeec4 Mon Sep 17 00:00:00 2001 From: Matt Zabriskie Date: Fri, 20 Nov 2015 12:16:45 -0700 Subject: [PATCH 4/5] Fixing file system case issue --- lib/helpers/buildUrl.js | 67 ----------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 lib/helpers/buildUrl.js diff --git a/lib/helpers/buildUrl.js b/lib/helpers/buildUrl.js deleted file mode 100644 index ed95c03..0000000 --- a/lib/helpers/buildUrl.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -var utils = require('./../utils'); - -function encode(val) { - return encodeURIComponent(val). - replace(/%40/gi, '@'). - replace(/%3A/gi, ':'). - replace(/%24/g, '$'). - replace(/%2C/gi, ','). - replace(/%20/g, '+'). - replace(/%5B/gi, '['). - replace(/%5D/gi, ']'); -} - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @returns {string} The formatted url - */ -module.exports = function buildURL(url, params, paramsSerializer) { - if (!params) { - return url; - } - - var serializedParams; - if (paramsSerializer) { - serializedParams = paramsSerializer(params); - } - else { - var parts = []; - - utils.forEach(params, function (val, key) { - if (val === null || typeof val === 'undefined') { - return; - } - - if (utils.isArray(val)) { - key = key + '[]'; - } - - if (!utils.isArray(val)) { - val = [val]; - } - - utils.forEach(val, function (v) { - if (utils.isDate(v)) { - v = v.toISOString(); - } - else if (utils.isObject(v)) { - v = JSON.stringify(v); - } - parts.push(encode(key) + '=' + encode(v)); - }); - }); - - serializedParams = parts.join('&'); - } - - if (serializedParams) { - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - - return url; -}; From 7fa69152e952b26c6655a3ee3775b0f90050e5d3 Mon Sep 17 00:00:00 2001 From: Matt Zabriskie Date: Fri, 20 Nov 2015 12:17:14 -0700 Subject: [PATCH 5/5] Restoring buildURL --- lib/helpers/buildURL.js | 68 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 lib/helpers/buildURL.js diff --git a/lib/helpers/buildURL.js b/lib/helpers/buildURL.js new file mode 100644 index 0000000..65f2091 --- /dev/null +++ b/lib/helpers/buildURL.js @@ -0,0 +1,68 @@ +'use strict'; + +var utils = require('./../utils'); + +function encode(val) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } + else { + var parts = []; + + utils.forEach(params, function (val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } + + if (!utils.isArray(val)) { + val = [val]; + } + + utils.forEach(val, function (v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } + else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +}; +