From 0a05ea42ac94afca0053360106c572267251751f Mon Sep 17 00:00:00 2001 From: Mint Thompson Date: Thu, 3 Aug 2023 09:59:31 -0400 Subject: [PATCH] Revise warning message for configuration "pages" property An unrecognized property within the "pages" property may or may not represent a subpage. Revise warning message to better acknowledge both possibilities. --- src/import/importConfiguration.ts | 16 ++++++++++------ test/import/importConfiguration.test.ts | 6 +++--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/import/importConfiguration.ts b/src/import/importConfiguration.ts index 71e3365ef..83287c59c 100644 --- a/src/import/importConfiguration.ts +++ b/src/import/importConfiguration.ts @@ -915,18 +915,22 @@ function detectPotentialMistakes(yaml: YAMLConfiguration) { ); if (additionalPropertiesErrors.length > 0) { const parentProperty = instancePath === '' ? '' : `property ${instancePath.slice(1)} `; - const propertyWord = additionalPropertiesErrors.length === 1 ? 'property' : 'properties'; + const singular = additionalPropertiesErrors.length === 1; const additionalPropertyNames = additionalPropertiesErrors .map(validationError => validationError.params.additionalProperty) .join(', '); - let recommendation: string; + let recommendation = `Check that ${ + singular ? 'this property is' : 'these properties are' + } spelled and indented correctly.`; if (instancePath.startsWith('/pages')) { - recommendation = 'Pages should end with .md, .xml, or .html.'; - } else { - recommendation = 'Check that these properties are spelled and indented correctly.'; + recommendation += ` If ${ + singular ? 'this is a page, it' : 'these are pages, they' + } should end with .md, .xml, or .html.`; } logger.warn( - `Configuration ${parentProperty}contains unexpected ${propertyWord}: ${additionalPropertyNames}. ${recommendation}` + `Configuration ${parentProperty}contains unexpected ${ + singular ? 'property' : 'properties' + }: ${additionalPropertyNames}. ${recommendation}` ); } else { logger.warn( diff --git a/test/import/importConfiguration.test.ts b/test/import/importConfiguration.test.ts index 42cb5f7d6..fb316d8e9 100644 --- a/test/import/importConfiguration.test.ts +++ b/test/import/importConfiguration.test.ts @@ -469,7 +469,7 @@ describe('importConfiguration', () => { expect(actual).toEqual(expected); expect(loggerSpy.getAllLogs('error')).toHaveLength(0); expect(loggerSpy.getLastMessage('warn')).toMatch( - 'Configuration contains unexpected property: cookie. Check that these properties are spelled and indented correctly.' + 'Configuration contains unexpected property: cookie. Check that this property is spelled and indented correctly.' ); }); @@ -2168,7 +2168,7 @@ describe('importConfiguration', () => { } ]); expect(loggerSpy.getLastMessage('warn')).toMatch( - 'Configuration property pages contains unexpected property: menu. Pages should end with .md, .xml, or .html.' + 'Configuration property pages contains unexpected property: menu. Check that this property is spelled and indented correctly. If this is a page, it should end with .md, .xml, or .html.' ); }); @@ -2202,7 +2202,7 @@ describe('importConfiguration', () => { { nameUrl: 'license', page: [] } ]); expect(loggerSpy.getLastMessage('warn')).toMatch( - 'Configuration property pages contains unexpected properties: menu, license. Pages should end with .md, .xml, or .html.' + 'Configuration property pages contains unexpected properties: menu, license. Check that these properties are spelled and indented correctly. If these are pages, they should end with .md, .xml, or .html.' ); });