From 9c92a5c8119c958d95d7fa466752b046af1df65e Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Mon, 5 Mar 2018 11:35:28 -0500 Subject: [PATCH] fix: Clone query passed to encodeQuery --- src/codec.js | 2 ++ test/codec.js | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/codec.js b/src/codec.js index 409470fa0..f273b6ba7 100644 --- a/src/codec.js +++ b/src/codec.js @@ -323,6 +323,8 @@ codec.TYPES = TYPES; * @returns {object} */ function encodeQuery(query) { + query = extend({}, query); + if (query.params) { let fields = {}; diff --git a/test/codec.js b/test/codec.js index 3481f2f3b..fc9d33f7a 100644 --- a/test/codec.js +++ b/test/codec.js @@ -596,10 +596,26 @@ describe('codec', function() { }; it('should return the query', function() { - var fakeQuery = {}; + var fakeQuery = { + a: 'b', + c: 'd', + }; + + var encodedQuery = codec.encodeQuery(fakeQuery); + + assert.deepStrictEqual(fakeQuery, encodedQuery); + }); + + it('should clone the query', function() { + var fakeQuery = { + a: 'b', + }; + var encodedQuery = codec.encodeQuery(fakeQuery); + assert.notStrictEqual(fakeQuery, encodedQuery); - assert.strictEqual(fakeQuery, encodedQuery); + delete encodedQuery.a; + assert.strictEqual(fakeQuery.a, 'b'); }); it('should encode query parameters', function() {