Bug 1453765 - Switch Fluent from warning to throwing errors when in debug/testing mode. r?stas,gijs draft
authorZibi Braniecki <zbraniecki@mozilla.com>
Wed, 09 May 2018 17:33:14 -0700
changeset 793434 03b25b385046f3920ce7c1b456485022c67c5703
parent 792573 7c83ceac4be6d055bebd870a82b78b76de14b9d7
push id109380
push userbmo:gandalf@aviary.pl
push dateThu, 10 May 2018 00:33:10 +0000
reviewersstas, gijs
bugs1453765
milestone62.0a1
Bug 1453765 - Switch Fluent from warning to throwing errors when in debug/testing mode. r?stas,gijs MozReview-Commit-ID: 4KR8KO43WLL
intl/l10n/DOMLocalization.jsm
intl/l10n/Localization.jsm
--- a/intl/l10n/DOMLocalization.jsm
+++ b/intl/l10n/DOMLocalization.jsm
@@ -653,17 +653,20 @@ class DOMLocalization extends Localizati
           for (let i = 0; i < overlayTranslations.length; i++) {
             if (overlayTranslations[i] !== undefined &&
                 untranslatedElements[i] !== undefined) {
               translateElement(untranslatedElements[i], overlayTranslations[i]);
             }
           }
           this.resumeObserving();
         })
-        .catch(() => this.resumeObserving());
+        .catch((e) => {
+          this.resumeObserving();
+          throw e;
+        });
     }
     return this.translateElements(this.getTranslatables(frag));
   }
 
   /**
    * Translate a list of DOM elements asynchronously using this
    * `DOMLocalization` object.
    *
--- a/intl/l10n/Localization.jsm
+++ b/intl/l10n/Localization.jsm
@@ -151,20 +151,24 @@ class Localization {
         ctx = await ctx;
       }
       const missingIds = keysFromContext(method, ctx, keys, translations);
 
       if (missingIds.size === 0) {
         break;
       }
 
-      if (AppConstants.NIGHTLY_BUILD) {
+      if (AppConstants.NIGHTLY_BUILD || Cu.isInAutomation) {
         const locale = ctx.locales[0];
         const ids = Array.from(missingIds).join(", ");
-        console.warn(`Missing translations in ${locale}: ${ids}`);
+        if (Cu.isInAutomation) {
+          throw new Error(`Missing translations in ${locale}: ${ids}`);
+        } else {
+          console.warn(`Missing translations in ${locale}: ${ids}`);
+        }
       }
     }
 
     return translations;
   }
 
   /**
    * Format translations into {value, attrs} objects.