From bb84962e5d1a7ab9e680dbb491ea3aef6590e2a9 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 16 Aug 2021 13:23:38 -0400 Subject: [PATCH] Only insert sources into the fileMap if not already there This allows us to setup the fileMap correctly for testing so that it never tries to fetch assets from the CDN. --- modules/core/localizer.js | 27 ++++++++++++--------------- modules/services/nsi.js | 2 +- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/modules/core/localizer.js b/modules/core/localizer.js index 12e5df0ed..ebb3ecb22 100644 --- a/modules/core/localizer.js +++ b/modules/core/localizer.js @@ -78,14 +78,11 @@ export function coreLocalizer() { var _loadPromise; localizer.ensureLoaded = () => { - if (_loadPromise) return _loadPromise; let filesToFetch = [ - // load the list of languages - 'languages', - // load the list of supported locales - 'locales' + 'languages', // load the list of languages + 'locales' // load the list of supported locales ]; const localeDirs = { @@ -95,8 +92,10 @@ export function coreLocalizer() { let fileMap = fileFetcher.fileMap(); for (let scopeId in localeDirs) { - let key = `locales_index_${scopeId}`; - fileMap[key] = localeDirs[scopeId] + '/index.min.json'; + const key = `locales_index_${scopeId}`; + if (!fileMap[key]) { + fileMap[key] = localeDirs[scopeId] + '/index.min.json'; + } filesToFetch.push(key); } @@ -106,16 +105,12 @@ export function coreLocalizer() { _dataLocales = results[1]; let indexes = results.slice(2); - let requestedLocales = (_preferredLocaleCodes || []) - // List of locales preferred by the browser in priority order. - .concat(utilDetect().browserLocales) - // fallback to English since it's the only guaranteed complete language - .concat(['en']); + .concat(utilDetect().browserLocales) // List of locales preferred by the browser in priority order. + .concat(['en']); // fallback to English since it's the only guaranteed complete language _localeCodes = localesToUseFrom(requestedLocales); - // Run iD in the highest-priority locale; the rest are fallbacks - _localeCode = _localeCodes[0]; + _localeCode = _localeCodes[0]; // Run iD in the highest-priority locale; the rest are fallbacks let loadStringsPromises = []; @@ -198,7 +193,9 @@ export function coreLocalizer() { let fileMap = fileFetcher.fileMap(); const key = `locale_${scopeId}_${locale}`; - fileMap[key] = `${directory}/${locale}.min.json`; + if (!fileMap[key]) { + fileMap[key] = `${directory}/${locale}.min.json`; + } return fileFetcher.get(key) .then(d => { diff --git a/modules/services/nsi.js b/modules/services/nsi.js index d3094ef29..06cc94f92 100644 --- a/modules/services/nsi.js +++ b/modules/services/nsi.js @@ -59,7 +59,7 @@ function setNsiSources() { let fileMap = fileFetcher.fileMap(); for (const k in sources) { - fileMap[k] = sources[k]; + if (!fileMap[k]) fileMap[k] = sources[k]; } }