Skip to content

Commit 35902a8

Browse files
authored
repo sync
2 parents 9b3dcef + 5633c29 commit 35902a8

File tree

4 files changed

+15
-5
lines changed

4 files changed

+15
-5
lines changed

lib/redirects/get-old-paths-from-permalink.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ module.exports = function getOldPathsFromPath (currentPath, languageCode, curren
8282
oldPaths.add(oldPath
8383
.replace(`/enterprise-server@${latest}`, '/enterprise-server'))
8484

85+
// create old path /enterprise-server@latest from new path /enterprise-server@<latest>
86+
oldPaths.add(oldPath
87+
.replace(`/enterprise-server@${latest}`, '/enterprise-server@latest'))
88+
8589
if (!patterns.adminProduct.test(oldPath)) {
8690
// create old path /enterprise/<version>/user/foo from new path /enterprise-server@<version>/foo
8791
oldPaths.add(currentPath

lib/redirects/precompile.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ const developerRedirects = require('../redirects/static/developer')
22
const { latest } = require('../../lib/enterprise-server-releases')
33
const latestDevRedirects = {}
44

5-
// Replace hardcoded 'latest' with real value
5+
// Replace hardcoded 'latest' with real value in the redirected path
66
Object.entries(developerRedirects).forEach(([oldPath, newPath]) => {
77
latestDevRedirects[oldPath] = newPath.replace('enterprise-server@latest', `enterprise-server@${latest}`)
88
})
99

1010
// This function runs at server warmup and precompiles possible redirect routes.
1111
// It outputs them in key-value pairs within a neat Javascript object: { oldPath: newPath }
12-
module.exports = function precompileRedirects (pageList) {
12+
module.exports = async function precompileRedirects (pageList) {
1313
const allRedirects = Object.assign({}, latestDevRedirects)
1414

1515
// CURRENT PAGES PERMALINKS AND FRONTMATTER
1616
// create backwards-compatible old paths for page permalinks and frontmatter redirects
17-
pageList.forEach(page => Object.assign(allRedirects, page.buildRedirects()))
17+
await Promise.all(pageList.map(async (page) => Object.assign(allRedirects, page.buildRedirects())))
1818

1919
return allRedirects
2020
}

lib/warm-server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const loadSiteTree = require('./site-tree')
99
const dog = {
1010
loadPages: statsd.asyncTimer(loadPages, 'load_pages'),
1111
loadPageMap: statsd.asyncTimer(loadPageMap, 'load_page_map'),
12-
loadRedirects: statsd.timer(loadRedirects, 'load_redirects'),
12+
loadRedirects: statsd.asyncTimer(loadRedirects, 'load_redirects'),
1313
loadSiteData: statsd.timer(loadSiteData, 'load_site_data'),
1414
loadSiteTree: statsd.asyncTimer(loadSiteTree, 'load_site_tree')
1515
}
@@ -52,7 +52,7 @@ async function warmServer () {
5252
}
5353

5454
if (!redirects) {
55-
redirects = dog.loadRedirects(pageList, pageMap)
55+
redirects = await dog.loadRedirects(pageList, pageMap)
5656
}
5757

5858
if (!siteTree) {

tests/routing/redirects.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,12 @@ describe('redirects', () => {
159159
expect(res.statusCode).toBe(301)
160160
expect(res.headers.location).toBe(japaneseEnterpriseHome)
161161
})
162+
163+
test('hardcoded @latest redirects to latest version', async () => {
164+
const res = await get('/en/enterprise-server@latest')
165+
expect(res.statusCode).toBe(301)
166+
expect(res.headers.location).toBe(enterpriseHome)
167+
})
162168
})
163169

164170
describe('2.13+ deprecated enterprise', () => {

0 commit comments

Comments
 (0)