From 55d7e55867bff1615c5e53bde4e577ac05b03ae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 8 Jul 2021 11:22:36 -0400 Subject: [PATCH] fix: tests --- src/controllers/topics.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/controllers/topics.js b/src/controllers/topics.js index b40f2efe05..4371228dd1 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -59,7 +59,7 @@ topicsController.get = async function getTopic(req, res, callback) { } if (!res.locals.isAPI && (!req.params.slug || topicData.slug !== `${tid}/${req.params.slug}`) && (topicData.slug && topicData.slug !== `${tid}/`)) { - return helpers.redirect(res, `/topic/${topicData.slug}${postIndex ? `/${postIndex}` : ''}?${qs.stringify(req.query)}`, true); + return helpers.redirect(res, `/topic/${topicData.slug}${postIndex ? `/${postIndex}` : ''}${generateQueryString(req.query)}`, true); } if (postIndex === 'unread') { @@ -67,7 +67,7 @@ topicsController.get = async function getTopic(req, res, callback) { } if (utils.isNumber(postIndex) && topicData.postcount > 0 && (postIndex < 1 || postIndex > topicData.postcount)) { - return helpers.redirect(res, `/topic/${tid}/${req.params.slug}${postIndex > topicData.postcount ? `/${topicData.postcount}` : ''}?${qs.stringify(req.query)}`); + return helpers.redirect(res, `/topic/${tid}/${req.params.slug}${postIndex > topicData.postcount ? `/${topicData.postcount}` : ''}${generateQueryString(req.query)}`); } postIndex = Math.max(1, postIndex); const sort = req.query.sort || settings.topicPostSort; @@ -121,6 +121,11 @@ topicsController.get = async function getTopic(req, res, callback) { res.render('topic', topicData); }; +function generateQueryString(query) { + let qString = qs.stringify(query); + return qString.length ? `?${qString}` : ''; +} + function calculatePageFromIndex(postIndex, settings) { return 1 + Math.floor((postIndex - 1) / settings.postsPerPage); }