From a6a02fb77323ee34b1716a3470cb95839016b7d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 15 Apr 2021 12:43:28 -0400 Subject: [PATCH] feat: merge --- src/middleware/user.js | 5 ++--- test/controllers.js | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/middleware/user.js b/src/middleware/user.js index 556a919821..d8215e30c0 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -185,9 +185,8 @@ module.exports = function (middleware) { if (!userslug) { return next(); } - const path = req.path.replace(/^\/api/, '') - .replace('uid', 'user') - .replace(uid, function () { return userslug; }); + const path = req.url.replace(/^\/api/, '') + .replace(`/uid/${uid}`, () => `/user/${userslug}`); controllers.helpers.redirect(res, path); }); diff --git a/test/controllers.js b/test/controllers.js index 382e1ccd62..42800a8c0d 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -1050,8 +1050,18 @@ describe('Controllers', function () { }); }); - it('should 404 if user does not exist', function (done) { - request(nconf.get('url') + '/api/uid/123123', { json: true }, function (err, res) { + it('should redirect to userslug and keep query params', (done) => { + request(`${nconf.get('url')}/api/uid/${fooUid}/topics?foo=bar`, { json: true }, (err, res, body) => { + assert.ifError(err); + assert.equal(res.statusCode, 200); + assert.equal(res.headers['x-redirect'], '/user/foo/topics?foo=bar'); + assert.equal(body, '/user/foo/topics?foo=bar'); + done(); + }); + }); + + it('should 404 if user does not exist', (done) => { + request(`${nconf.get('url')}/api/uid/123123`, { json: true }, (err, res) => { assert.ifError(err); assert.equal(res.statusCode, 404); done();