Skip to content

Commit

Permalink
Merge pull request github#15812 from github/repo-sync
Browse files Browse the repository at this point in the history
repo sync
  • Loading branch information
Octomerger authored Feb 24, 2022
2 parents f35b451 + 245f6b9 commit 90da848
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 12 deletions.
11 changes: 7 additions & 4 deletions lib/page.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ import getLinkData from './get-link-data.js'
import getDocumentType from './get-document-type.js'
import { union } from 'lodash-es'

// We're going to check a lot of pages' "ID" (the first part of
// the relativePath) against `productMap` to make sure it's valid.
// To avoid having to do `Object.keys(productMap).includes(id)`
// every single time, we turn it into a Set once.
const productMapKeysAsSet = new Set(Object.keys(productMap))

// Wrapper on renderContent() that caches the output depending on the
// `context` by extracting information about the page's current permalink
const _renderContentCache = new Map()
Expand Down Expand Up @@ -162,10 +168,7 @@ class Page {

// make sure the ID is valid
if (process.env.NODE_ENV !== 'test') {
assert(
Object.keys(productMap).includes(id),
`page ${this.fullPath} has an invalid product ID: ${id}`
)
assert(productMapKeysAsSet.has(id), `page ${this.fullPath} has an invalid product ID: ${id}`)
}

return id
Expand Down
20 changes: 12 additions & 8 deletions tests/content/site-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,19 @@ describe('siteData module (English)', () => {
expect(reusable.includes('任意のページの左上で')).toBe(true)
})

// TODO: re-enable once Janky flakyness is resolved
// Docs Engineering issue: 964
test.skip('backfills missing translated site data with English values', async () => {
test('backfills missing translated site data with English values', async () => {
const newFile = path.join(__dirname, '../../data/newfile.yml')
await fs.writeFile(newFile, 'newvalue: bar')
const data = await loadSiteData()
expect(get(data, 'en.site.data.newfile.newvalue')).toEqual('bar')
expect(get(data, 'ja.site.data.newfile.newvalue')).toEqual('bar')
await fs.unlink(newFile)
fs.writeFileSync(newFile, 'newvalue: bar')
try {
const data = loadSiteData()
expect(get(data, 'en.site.data.newfile.newvalue')).toEqual('bar')
expect(get(data, 'ja.site.data.newfile.newvalue')).toEqual('bar')
} finally {
// If an error is thrown above, it will still "bubble up"
// to the jest reporter, but we still always need to clean up
// the temporary file.
fs.unlinkSync(newFile)
}
})

test('all Liquid templating is valid', async () => {
Expand Down

0 comments on commit 90da848

Please sign in to comment.