diff --git a/ui/desktop/app/services/origin.js b/ui/desktop/app/services/origin.js index 9ca0895f2..c3e27c358 100644 --- a/ui/desktop/app/services/origin.js +++ b/ui/desktop/app/services/origin.js @@ -63,9 +63,10 @@ export default class OriginService extends Service { typeof origin === 'string' ); try { - // Silently drop trailing slashes if present. + // Trim whitespaces and silently drop trailing slashes if present. // This is important since API paths that will be appended to the origin // will include preceeding slashes already. + origin = origin.trim(); origin = origin.replace(/\/*$/, ''); this.adapter.host = origin; this.rendererOrigin = origin; diff --git a/ui/desktop/tests/unit/services/origin-test.js b/ui/desktop/tests/unit/services/origin-test.js index cc6cdfa69..7c759713f 100644 --- a/ui/desktop/tests/unit/services/origin-test.js +++ b/ui/desktop/tests/unit/services/origin-test.js @@ -35,4 +35,15 @@ module('Unit | Service | origin', function (hooks) { assert.equal(service.rendererOrigin, window.location.origin); assert.equal(service.adapter.host, window.location.origin); }); + + test('trim spaces from origin on setOrigin', async function (assert) { + assert.expect(4); + sinon.stub(ipcService, 'invoke'); + await service.setOrigin(` ${window.location.origin}/ `); + assert.equal(service.rendererOrigin, window.location.origin); + assert.equal(service.adapter.host, window.location.origin); + await service.setOrigin(` ${window.location.origin} `); + assert.equal(service.rendererOrigin, window.location.origin); + assert.equal(service.adapter.host, window.location.origin); + }); });