diff --git a/src/import/importConfiguration.ts b/src/import/importConfiguration.ts index 71e3365ef..a2fe6c4dd 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, capitalized, 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..fcd020d95 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, capitalized, and indented correctly.' ); }); @@ -503,7 +503,7 @@ describe('importConfiguration', () => { expect(actual).toEqual(expected); expect(loggerSpy.getAllLogs('error')).toHaveLength(0); expect(loggerSpy.getLastMessage('warn')).toMatch( - 'Configuration contains unexpected properties: cookie, index.md. Check that these properties are spelled and indented correctly.' + 'Configuration contains unexpected properties: cookie, index.md. Check that these properties are spelled, capitalized, 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, capitalized, 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, capitalized, and indented correctly. If these are pages, they should end with .md, .xml, or .html.' ); });