diff --git a/spec/html/QueryStringSpec.js b/spec/html/QueryStringSpec.js index de2f5721..b9303be2 100644 --- a/spec/html/QueryStringSpec.js +++ b/spec/html/QueryStringSpec.js @@ -48,6 +48,21 @@ describe('QueryString', function() { expect(result).toMatch(/foo=bar/); expect(result).toMatch(/baz=quux/); }); + + it('includes url pathname with the query string including the given key/value pair', function() { + var windowLocation = { + pathname: 'debug.html', + search: '?foo=bar' + }, + queryString = new jasmineUnderTest.QueryString({ + getWindowLocation: function() { + return windowLocation; + } + }); + + var result = queryString.fullStringWithNewParam('baz', 'quux'); + expect(result).toBe('debug.html?foo=bar&baz=quux'); + }); }); describe('#getParam', function() { diff --git a/src/html/QueryString.js b/src/html/QueryString.js index c4ce950e..736a691c 100644 --- a/src/html/QueryString.js +++ b/src/html/QueryString.js @@ -26,7 +26,10 @@ jasmineRequire.QueryString = function() { encodeURIComponent(prop) + '=' + encodeURIComponent(paramMap[prop]) ); } - return '?' + qStrPairs.join('&'); + // include getWindowLocation() to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906 + return ( + (options.getWindowLocation().pathname || '') + '?' + qStrPairs.join('&') + ); } function queryStringToParamMap() {