diff --git a/server/cloudcmd.js b/server/cloudcmd.js index 98cf65e1..d878f991 100644 --- a/server/cloudcmd.js +++ b/server/cloudcmd.js @@ -283,6 +283,11 @@ function logout(req, res, next) { res.sendStatus(401); } +module.exports._replacePrefix = replacePrefix; +function replacePrefix(url, prefix) { + return url.replace(prefix, '') || '/'; +} + function _setUrl(pref, req, res, next) { const prefix = getPrefix(pref); const is = !req.url.indexOf(prefix); @@ -290,7 +295,7 @@ function _setUrl(pref, req, res, next) { if (!is) return next(); - req.url = req.url.replace(prefix, '') || '/'; + req.url = replacePrefix(req.url, prefix); if (/^\/cloudcmd\.js(\.map)?$/.test(req.url)) req.url = `/dist${req.url}`; diff --git a/test/server/cloudcmd.js b/test/server/cloudcmd.js index d78b5f11..edfc12f6 100644 --- a/test/server/cloudcmd.js +++ b/test/server/cloudcmd.js @@ -12,6 +12,7 @@ const { _authenticate, _getPrefix, _authCheck, + _replacePrefix, } = cloudcmd; test('cloudcmd: args: no', (t) => { @@ -70,6 +71,15 @@ test('cloudcmd: getPrefix: function', (t) => { t.end(); }); +test('cloudcmd: replacePrefix', (t) => { + const url = '/hello'; + const prefix = url; + const result = _replacePrefix(url, prefix); + + t.equal(result, '/', 'should equal'); + t.end(); +}); + test('cloudcmd: authCheck: success', (t) => { const auth = config('auth'); const success = sinon.stub();