Skip to content

Commit d75c49b

Browse files
authored
loadPages by 'en' only (github#25846)
1 parent cdc5976 commit d75c49b

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

lib/page-data.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,21 @@ const TRANSLATION_DRIFT_EXCEPTIONS = [
3030
* first since it's the most expensive work. This gets us a nested object with pages attached that we can use
3131
* as the basis for the siteTree after we do some versioning. We can also use it to derive the pageList.
3232
*/
33-
export async function loadUnversionedTree() {
33+
export async function loadUnversionedTree(languagesOnly = null) {
34+
if (languagesOnly && !Array.isArray(languagesOnly)) {
35+
throw new Error("'languagesOnly' has to be an array")
36+
}
3437
const unversionedTree = {}
3538

39+
const languagesValues = Object.entries(languages)
40+
.filter(([language]) => {
41+
return !languagesOnly || languagesOnly.includes(language)
42+
})
43+
.map(([, data]) => {
44+
return data
45+
})
3646
await Promise.all(
37-
Object.values(languages).map(async (langObj) => {
47+
languagesValues.map(async (langObj) => {
3848
const localizedContentPath = path.posix.join(__dirname, '..', langObj.dir, 'content')
3949
unversionedTree[langObj.code] = await createTree(localizedContentPath, langObj)
4050
})
@@ -129,7 +139,10 @@ export async function versionPages(obj, version, langCode, site) {
129139

130140
// Derive a flat array of Page objects in all languages.
131141
export async function loadPageList(unversionedTree, languagesOnly = null) {
132-
const rawTree = unversionedTree || (await loadUnversionedTree())
142+
if (languagesOnly && !Array.isArray(languagesOnly)) {
143+
throw new Error("'languagesOnly' has to be an array")
144+
}
145+
const rawTree = unversionedTree || (await loadUnversionedTree(languagesOnly))
133146
const pageList = []
134147

135148
await Promise.all(

tests/rendering/pages-with-learning-tracks.js

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
1-
import { jest, beforeAll, expect } from '@jest/globals'
1+
import { jest, expect } from '@jest/globals'
22

33
import { getDOM } from '../helpers/supertest.js'
44
import { loadPages } from '../../lib/page-data.js'
55

66
describe('process learning tracks', () => {
7-
let pageList
8-
97
// Because calling `loadPages` will trigger a warmup, this can potentially
108
// be very slow in CI. So we need a timeout.
119
jest.setTimeout(60 * 1000)
1210

13-
beforeAll(async () => {
14-
// Only doing English because they're the only files we do PRs for.
15-
pageList = (await loadPages()).filter((page) => page.languageCode === 'en')
16-
})
17-
1811
test('pages with learningTracks ', async () => {
12+
const pageList = await loadPages(undefined, ['en'])
13+
1914
for (const page of pageList) {
2015
if (page.learningTracks && page.learningTracks.length > 0) {
2116
for (const permalink of page.permalinks) {

0 commit comments

Comments
 (0)