test_NimbusRolloutMessageProvider.js (1319B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 const { NimbusRolloutMessageProvider } = ChromeUtils.importESModule( 5 "resource://testing-common/NimbusRolloutMessageProvider.sys.mjs" 6 ); 7 8 const MESSAGE_VALIDATORS = {}; 9 let EXPERIMENT_VALIDATOR; 10 11 add_setup(async function setup() { 12 const validators = await makeValidators(); 13 14 EXPERIMENT_VALIDATOR = validators.experimentValidator; 15 Object.assign(MESSAGE_VALIDATORS, validators.messageValidators); 16 }); 17 18 add_task(function test_NimbusRolloutMessageProvider() { 19 const messages = NimbusRolloutMessageProvider.getMessages(); 20 21 for (const message of messages) { 22 const validator = MESSAGE_VALIDATORS[message.template]; 23 Assert.notStrictEqual( 24 typeof validator, 25 "undefined", 26 typeof validator !== "undefined" 27 ? `Schema validator found for ${message.template}` 28 : `No schema validator found for template ${message.template} of message ${message?.id}. Please update this test to add one.` 29 ); 30 31 assertValidates( 32 validator, 33 message, 34 `Message ${message.id} validates as ${message.template} template` 35 ); 36 assertValidates( 37 EXPERIMENT_VALIDATOR, 38 message, 39 `Message ${message.id} validates as a MessagingExperiment` 40 ); 41 } 42 });