From 6d98fb794ca321db667778dcb3ab00cc6c9af969 Mon Sep 17 00:00:00 2001 From: SherifMega Date: Wed, 14 Dec 2022 23:46:54 +0200 Subject: [PATCH] fix: add support for arrays --- src/__snapshots__/valid-message-syntax.test.js.snap | 12 +++++------- src/valid-message-syntax.js | 11 ----------- src/valid-message-syntax.test.js | 5 ++--- 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/__snapshots__/valid-message-syntax.test.js.snap b/src/__snapshots__/valid-message-syntax.test.js.snap index a012d75..57cb9f7 100644 --- a/src/__snapshots__/valid-message-syntax.test.js.snap +++ b/src/__snapshots__/valid-message-syntax.test.js.snap @@ -30,27 +30,25 @@ exports[`Snapshot Tests for Invalid Code nested translations - icu syntax check }" `; -exports[`Snapshot Tests for Invalid Code no arrays or numbers 1`] = ` +exports[`Snapshot Tests for Invalid Code no empty objects 1`] = ` " - Expected + Received Object { - \\"levelOne\\": \\"ObjectContaining | ValidMessage\\", -- \\"levelTwo\\": \\"ValidMessage\\", -+ \\"levelOne\\": \\"Array [] ===> TypeError: An Array cannot be a translation value.\\", -+ \\"levelTwo\\": \\"Number(5) ===> Message must be a String.\\", ++ \\"levelOne\\": \\"Object {} ===> SyntaxError: Empty object.\\", }" `; -exports[`Snapshot Tests for Invalid Code no empty objects 1`] = ` +exports[`Snapshot Tests for Invalid Code no numbers 1`] = ` " - Expected + Received Object { -- \\"levelOne\\": \\"ObjectContaining | ValidMessage\\", -+ \\"levelOne\\": \\"Object {} ===> SyntaxError: Empty object.\\", +- \\"levelOne\\": \\"ValidMessage\\", ++ \\"levelOne\\": \\"Number(5) ===> Message must be a String.\\", }" `; diff --git a/src/valid-message-syntax.js b/src/valid-message-syntax.js index 061c8eb..a67add4 100644 --- a/src/valid-message-syntax.js +++ b/src/valid-message-syntax.js @@ -11,7 +11,6 @@ const getTranslationFileSource = require('./util/get-translation-file-source'); /* Error tokens */ const EMPTY_OBJECT = Symbol.for('EMPTY_OBJECT'); -const ARRAY = Symbol.for('ARRAY'); /* Formatting */ const ALL_BACKSLASHES = /[\\]/g; @@ -31,7 +30,6 @@ const prettyFormatTypePlugin = { const formatExpectedValue = ({ value }) => { switch (value) { case EMPTY_OBJECT: - case ARRAY: return 'ObjectContaining | ValidMessage'; default: return 'ValidMessage'; @@ -45,8 +43,6 @@ const formatReceivedValue = ({ value, error }) => { switch (value) { case EMPTY_OBJECT: return `${prettyFormat({})} ===> ${error}`; - case ARRAY: - return `${prettyFormat([])} ===> ${error}`; default: return `${prettyFormat(value, { plugins: [prettyFormatTypePlugin] @@ -140,13 +136,6 @@ const validMessageSyntax = (context, source) => { error: new SyntaxError('Empty object.') }); } - } else if (Array.isArray(value)) { - invalidMessages.push({ - value: ARRAY, - key, - path, - error: new TypeError('An Array cannot be a translation value.') - }); } else { try { validate(value, key); diff --git a/src/valid-message-syntax.test.js b/src/valid-message-syntax.test.js index e35f85c..ec9d2f9 100644 --- a/src/valid-message-syntax.test.js +++ b/src/valid-message-syntax.test.js @@ -261,12 +261,11 @@ describe('Snapshot Tests for Invalid Code', () => { }); expect(strip(errors[0].message)).toMatchSnapshot(); }); - test('no arrays or numbers', () => { + test('no numbers', () => { const errors = run({ code: ` /*{ - "levelOne": [ "data" ], - "levelTwo": 5 + "levelOne": 5 }*//*path/to/file.json*/ `, options: [