diff --git a/src/linter/html/transpiler.ts b/src/linter/html/transpiler.ts index a0975ffa3..9aebfd09f 100644 --- a/src/linter/html/transpiler.ts +++ b/src/linter/html/transpiler.ts @@ -84,6 +84,9 @@ const oldToNewAttr = new Map([ ["data-sap-ui-evt-oninit", "data-sap-ui-on-init"], ["data-sap-ui-oninit", "data-sap-ui-on-init"], ["data-sap-ui-resourceroots", "data-sap-ui-resource-roots"], + ["data-sap-ui-legacy-date-format", "data-sap-ui-a-b-a-p-date-format"], + ["data-sap-ui-legacy-time-format", "data-sap-ui-a-b-a-p-time-format"], + ["data-sap-ui-legacy-number-format", "data-sap-ui-a-b-a-p-number-format"], ]); const aliasToAttr = new Map([ @@ -110,7 +113,7 @@ function lintBootstrapAttributes(tag: Tag, report: HtmlReporter) { if (attributes.has(attributeName)) { report.addMessage(MESSAGE.DUPLICATE_BOOTSTRAP_PARAM, { name: attributeName, - value: attr.name.value, + value: attr.value.value, }, attr.name); } attributes.add(attributeName); @@ -134,16 +137,54 @@ function lintBootstrapAttributes(tag: Tag, report: HtmlReporter) { checkOnInitAttr(attr, report); break; case "data-sap-ui-binding-syntax": + checkBindingSyntaxAttr(attr, report); + break; + case "data-sap-ui-origin-info": + checkOriginInfoAttr(attr, report); + break; case "data-sap-ui-preload": - report.addMessage(MESSAGE.REDUNDANT_BOOTSTRAP_PARAM, { + checkPreloadAttr(attr, report); + break; + case "data-sap-ui-no-duplicate-ids": + report.addMessage(MESSAGE.ABANDONED_BOOTSTRAP_PARAM_ERROR, { name: attr.name.value, + messageDetails: "Duplicate ID checks are enforced with UI5 2.x", + }, attr.name); + break; + case "data-sap-ui-auto-aria-body-role": + report.addMessage(MESSAGE.ABANDONED_BOOTSTRAP_PARAM_ERROR, { + name: attr.name.value, + messageDetails: "Avoid assigning a role=\"application\" to the body element, as doing so " + + "would make screen readers interpret the entire application as a single custom control", }, attr.name); break; case "data-sap-ui-xx-no-less": + case "data-sap-ui-trace": report.addMessage(MESSAGE.ABANDONED_BOOTSTRAP_PARAM, { name: attr.name.value, }, attr.name); break; + case "data-sap-ui-areas": + report.addMessage(MESSAGE.ABANDONED_BOOTSTRAP_PARAM, { + name: attr.name.value, + messageDetails: "No longer supported. UI areas are created on request by calling Control.placeAt", + }, attr.name); + break; + case "data-sap-ui-animation": + report.addMessage(MESSAGE.REPLACED_BOOTSTRAP_PARAM, { + name: attr.name.value, + replacement: "data-sap-ui-animation-mode", + messageDetails: "Migrate to 'data-sap-ui-animation-mode' attribute " + + "{@link module:sap/ui/core/AnimationMode AnimationMode}", + }, attr.name); + break; + case "data-sap-ui-manifest-first": + report.addMessage(MESSAGE.ABANDONED_BOOTSTRAP_PARAM_ERROR, { + name: attr.name.value, + messageDetails: "Set the manifest parameter in component factory call" + + " {@link sap.ui.core.Component#sap.ui.core.Component.create}", + }, attr.name); + break; } } @@ -161,6 +202,45 @@ function lintBootstrapAttributes(tag: Tag, report: HtmlReporter) { } } +function checkPreloadAttr(attr: Attribute, report: HtmlReporter) { + const value = attr.value.value.toLowerCase(); + if (value && !["auto", "async", "sync"].includes(value)) { + report.addMessage(MESSAGE.REDUNDANT_BOOTSTRAP_PARAM_ERROR, { + name: attr.name.value, + messageDetails: "Use sap-ui-debug=true to suppress library preload requests", + }, attr.name); + } +} + +function checkOriginInfoAttr(attr: Attribute, report: HtmlReporter) { + if (attr.value.value.toLowerCase() === "true") { + report.addMessage(MESSAGE.ABANDONED_BOOTSTRAP_PARAM_ERROR, { + name: attr.name.value, + }, attr.name); + } else { + report.addMessage(MESSAGE.ABANDONED_BOOTSTRAP_PARAM, { + name: attr.name.value, + }, attr.name); + } +} + +function checkBindingSyntaxAttr(attr: Attribute, report: HtmlReporter) { + if (attr.value.value.toLowerCase() === "complex") { + report.addMessage(MESSAGE.REDUNDANT_BOOTSTRAP_PARAM, { + name: attr.name.value, + messageDetails: "Only 'complex' is supported with UI5 2.x and automatically" + + " enforced by the UI5 runtime. Complex binding parser supports simple binding syntax per default.", + }, attr.name); + } else { + report.addMessage(MESSAGE.REDUNDANT_BOOTSTRAP_PARAM_ERROR, { + name: attr.name.value, + messageDetails: "Only 'complex' is supported with UI5 2.x and automatically" + + " enforced by the UI5 runtime. Check all bindings whether they will be " + + "misinterpreted in 2.x with binding syntax 'complex'.", + }, attr.name); + } +} + function checkThemeAttr(attr: Attribute, report: HtmlReporter) { const themeName = attr.value.value.toLowerCase(); if (deprecatedThemes.includes(themeName)) { diff --git a/src/linter/messages.ts b/src/linter/messages.ts index 8049e6e6f..0e57d228f 100644 --- a/src/linter/messages.ts +++ b/src/linter/messages.ts @@ -22,6 +22,7 @@ export enum LintMessageSeverity { // Messages (sorted alphabetically) export enum MESSAGE { ABANDONED_BOOTSTRAP_PARAM, + ABANDONED_BOOTSTRAP_PARAM_ERROR, COMPONENT_MISSING_ASYNC_INTERFACE, COMPONENT_MISSING_MANIFEST_DECLARATION, COMPONENT_REDUNDANT_ASYNC_FLAG, @@ -63,7 +64,9 @@ export enum MESSAGE { PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY_PROPERTIES_ARRAY, PARTIALLY_DEPRECATED_PARAMETERS_GET, REDUNDANT_BOOTSTRAP_PARAM, + REDUNDANT_BOOTSTRAP_PARAM_ERROR, REDUNDANT_VIEW_CONFIG_PROPERTY, + REPLACED_BOOTSTRAP_PARAM, SPELLING_BOOTSTRAP_PARAM, SVG_IN_XML, MISSING_CONTROL_RENDERER_DECLARATION, @@ -77,7 +80,16 @@ export const MESSAGE_INFO = { message: ({name}: {name: string}) => `Abandoned bootstrap parameter '${name}' should be removed`, - details: () => undefined, + details: ({messageDetails}: {messageDetails?: string}) => messageDetails, + }, + + [MESSAGE.ABANDONED_BOOTSTRAP_PARAM_ERROR]: { + severity: LintMessageSeverity.Error, + ruleId: RULES["no-deprecated-api"], + + message: ({name}: {name: string}) => + `Abandoned bootstrap parameter '${name}' should be removed`, + details: ({messageDetails}: {messageDetails?: string}) => messageDetails, }, [MESSAGE.COMPONENT_MISSING_ASYNC_INTERFACE]: { @@ -474,7 +486,16 @@ export const MESSAGE_INFO = { message: ({name}: {name: string}) => `Redundant bootstrap parameter '${name}' should be removed`, - details: () => undefined, + details: ({messageDetails}: {messageDetails?: string}) => messageDetails, + }, + + [MESSAGE.REDUNDANT_BOOTSTRAP_PARAM_ERROR]: { + severity: LintMessageSeverity.Error, + ruleId: RULES["no-deprecated-api"], + + message: ({name}: {name: string}) => + `Redundant bootstrap parameter '${name}' should be removed`, + details: ({messageDetails}: {messageDetails?: string}) => messageDetails, }, [MESSAGE.REDUNDANT_VIEW_CONFIG_PROPERTY]: { @@ -529,4 +550,13 @@ export const MESSAGE_INFO = { }, }, + [MESSAGE.REPLACED_BOOTSTRAP_PARAM]: { + severity: LintMessageSeverity.Error, + ruleId: RULES["no-deprecated-api"], + + message: ({name, replacement}: {name: string; replacement: string}) => + `Bootstrap parameter '${name}' should be replaced with '${replacement}'`, + details: ({messageDetails}: {messageDetails: string}) => messageDetails, + }, + } as const; diff --git a/test/fixtures/linter/rules/NoDeprecatedApi/BootstrapParameters_Deprecations.html b/test/fixtures/linter/rules/NoDeprecatedApi/BootstrapParameters_Deprecations.html index 2e20c2711..4354aa003 100644 --- a/test/fixtures/linter/rules/NoDeprecatedApi/BootstrapParameters_Deprecations.html +++ b/test/fixtures/linter/rules/NoDeprecatedApi/BootstrapParameters_Deprecations.html @@ -13,7 +13,23 @@ data-sap-ui-theme="sap_bluecrystal" data-sap-ui-compat-version="1.18" data-sap-ui-async="false" + data-sap-ui-animation="false" + data-sap-ui-areas="uiArea1,uiArea2" + data-sap-ui-auto-aria-body-role="true" + data-sap-ui-binding-syntax="simple" + data-sap-ui-binding-syntax="complex" + data-sap-ui-format-settings='{"legacyDateFormat": "1"}' + data-sap-ui-manifest-first="true" + data-sap-ui-no-duplicate-ids="true" + data-sap-ui-origin-info="true" + data-sap-ui-origin-info="false" + data-sap-ui-preload="false" + data-sap-ui-trace="true" data-sap-ui-on-init="my.global.function" + + data-sap-ui-legacy-date-format="" + data-sap-ui-legacy-time-format="" + data-sap-ui-legacy-number-format="" data-sap-ui-xx-waitForTheme="true"> diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md index 76aa81e7c..3382b06a5 100644 --- a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md +++ b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md @@ -11,7 +11,7 @@ Generated by [AVA](https://avajs.dev). [ { coverageInfo: [], - errorCount: 6, + errorCount: 13, fatalErrorCount: 0, filePath: 'BootstrapParameters_Deprecations.html', messages: [ @@ -54,15 +54,135 @@ Generated by [AVA](https://avajs.dev). severity: 2, }, { - column: 24, + column: 3, line: 16, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + messageDetails: 'Migrate to \'data-sap-ui-animation-mode\' attribute AnimationMode (https://ui5.sap.com/1.120/#/api/module:sap/ui/core/AnimationMode)', + ruleId: 'no-deprecated-api', + severity: 2, + }, + { + column: 3, + line: 17, + message: 'Abandoned bootstrap parameter \'data-sap-ui-areas\' should be removed', + messageDetails: 'No longer supported. UI areas are created on request by calling Control.placeAt', + ruleId: 'no-deprecated-api', + severity: 1, + }, + { + column: 3, + line: 18, + message: 'Abandoned bootstrap parameter \'data-sap-ui-auto-aria-body-role\' should be removed', + messageDetails: 'Avoid assigning a role="application" to the body element, as doing so would make screen readers interpret the entire application as a single custom control', + ruleId: 'no-deprecated-api', + severity: 2, + }, + { + column: 3, + line: 19, + message: 'Redundant bootstrap parameter \'data-sap-ui-binding-syntax\' should be removed', + messageDetails: 'Only \'complex\' is supported with UI5 2.x and automatically enforced by the UI5 runtime. Check all bindings whether they will be misinterpreted in 2.x with binding syntax \'complex\'.', + ruleId: 'no-deprecated-api', + severity: 2, + }, + { + column: 3, + line: 20, + message: 'Duplicate bootstrap parameter \'data-sap-ui-binding-syntax\' with value \'complex\'', + ruleId: 'no-deprecated-api', + severity: 1, + }, + { + column: 3, + line: 20, + message: 'Redundant bootstrap parameter \'data-sap-ui-binding-syntax\' should be removed', + messageDetails: 'Only \'complex\' is supported with UI5 2.x and automatically enforced by the UI5 runtime. Complex binding parser supports simple binding syntax per default.', + ruleId: 'no-deprecated-api', + severity: 1, + }, + { + column: 3, + line: 22, + message: 'Abandoned bootstrap parameter \'data-sap-ui-manifest-first\' should be removed', + messageDetails: 'Set the manifest parameter in component factory call sap.ui.core.Component#sap.ui.core.Component.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.Component%23methods/sap.ui.core.Component.create)', + ruleId: 'no-deprecated-api', + severity: 2, + }, + { + column: 3, + line: 23, + message: 'Abandoned bootstrap parameter \'data-sap-ui-no-duplicate-ids\' should be removed', + messageDetails: 'Duplicate ID checks are enforced with UI5 2.x', + ruleId: 'no-deprecated-api', + severity: 2, + }, + { + column: 3, + line: 24, + message: 'Abandoned bootstrap parameter \'data-sap-ui-origin-info\' should be removed', + ruleId: 'no-deprecated-api', + severity: 2, + }, + { + column: 3, + line: 25, + message: 'Duplicate bootstrap parameter \'data-sap-ui-origin-info\' with value \'false\'', + ruleId: 'no-deprecated-api', + severity: 1, + }, + { + column: 3, + line: 25, + message: 'Abandoned bootstrap parameter \'data-sap-ui-origin-info\' should be removed', + ruleId: 'no-deprecated-api', + severity: 1, + }, + { + column: 3, + line: 26, + message: 'Redundant bootstrap parameter \'data-sap-ui-preload\' should be removed', + messageDetails: 'Use sap-ui-debug=true to suppress library preload requests', + ruleId: 'no-deprecated-api', + severity: 2, + }, + { + column: 3, + line: 27, + message: 'Abandoned bootstrap parameter \'data-sap-ui-trace\' should be removed', + ruleId: 'no-deprecated-api', + severity: 1, + }, + { + column: 24, + line: 28, message: 'Use of deprecated value \'my.global.function\' for bootstrap parameter \'data-sap-ui-on-init\'', messageDetails: 'Configuration Options and URL Parameters (https://ui5.sap.com/#/topic/91f2d03b6f4d1014b6dd926db0e91070)', ruleId: 'no-deprecated-api', severity: 2, }, + { + column: 3, + line: 30, + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-legacy-date-format\'; should be written as \'data-sap-ui-a-b-a-p-date-format\'', + ruleId: 'no-deprecated-api', + severity: 1, + }, + { + column: 3, + line: 31, + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-legacy-time-format\'; should be written as \'data-sap-ui-a-b-a-p-time-format\'', + ruleId: 'no-deprecated-api', + severity: 1, + }, + { + column: 3, + line: 32, + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-legacy-number-format\'; should be written as \'data-sap-ui-a-b-a-p-number-format\'', + ruleId: 'no-deprecated-api', + severity: 1, + }, ], - warningCount: 0, + warningCount: 9, }, ] @@ -321,7 +441,7 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 15, - message: 'Duplicate bootstrap parameter \'data-sap-ui-on-init\' with value \'data-sap-ui-onInit\'', + message: 'Duplicate bootstrap parameter \'data-sap-ui-on-init\' with value \'console.log(\'Ready\')\'', ruleId: 'no-deprecated-api', severity: 1, }, @@ -344,13 +464,14 @@ Generated by [AVA](https://avajs.dev). column: 3, line: 18, message: 'Redundant bootstrap parameter \'data-sap-ui-bindingsyntax\' should be removed', + messageDetails: 'Only \'complex\' is supported with UI5 2.x and automatically enforced by the UI5 runtime. Complex binding parser supports simple binding syntax per default.', ruleId: 'no-deprecated-api', severity: 1, }, { column: 3, line: 19, - message: 'Duplicate bootstrap parameter \'data-sap-ui-binding-syntax\' with value \'data-sap-ui-xx-bindingsyntax\'', + message: 'Duplicate bootstrap parameter \'data-sap-ui-binding-syntax\' with value \'complex\'', ruleId: 'no-deprecated-api', severity: 1, }, @@ -358,13 +479,14 @@ Generated by [AVA](https://avajs.dev). column: 3, line: 19, message: 'Redundant bootstrap parameter \'data-sap-ui-xx-bindingsyntax\' should be removed', + messageDetails: 'Only \'complex\' is supported with UI5 2.x and automatically enforced by the UI5 runtime. Complex binding parser supports simple binding syntax per default.', ruleId: 'no-deprecated-api', severity: 1, }, { column: 3, line: 20, - message: 'Duplicate bootstrap parameter \'data-sap-ui-binding-syntax\' with value \'data-sap-ui-xx-binding-syntax\'', + message: 'Duplicate bootstrap parameter \'data-sap-ui-binding-syntax\' with value \'complex\'', ruleId: 'no-deprecated-api', severity: 1, }, @@ -372,27 +494,14 @@ Generated by [AVA](https://avajs.dev). column: 3, line: 20, message: 'Redundant bootstrap parameter \'data-sap-ui-xx-binding-syntax\' should be removed', - ruleId: 'no-deprecated-api', - severity: 1, - }, - { - column: 3, - line: 21, - message: 'Redundant bootstrap parameter \'data-sap-ui-preload\' should be removed', - ruleId: 'no-deprecated-api', - severity: 1, - }, - { - column: 3, - line: 22, - message: 'Duplicate bootstrap parameter \'data-sap-ui-preload\' with value \'data-sap-ui-xx-preload\'', + messageDetails: 'Only \'complex\' is supported with UI5 2.x and automatically enforced by the UI5 runtime. Complex binding parser supports simple binding syntax per default.', ruleId: 'no-deprecated-api', severity: 1, }, { column: 3, line: 22, - message: 'Redundant bootstrap parameter \'data-sap-ui-xx-preload\' should be removed', + message: 'Duplicate bootstrap parameter \'data-sap-ui-preload\' with value \'async\'', ruleId: 'no-deprecated-api', severity: 1, }, @@ -412,7 +521,7 @@ Generated by [AVA](https://avajs.dev). severity: 2, }, ], - warningCount: 16, + warningCount: 14, }, ] diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap index 99323e584..f6e1bff05 100644 Binary files a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap and b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap differ diff --git a/test/lib/linter/snapshots/linter.ts.md b/test/lib/linter/snapshots/linter.ts.md index 8fae968a7..be6d18236 100644 --- a/test/lib/linter/snapshots/linter.ts.md +++ b/test/lib/linter/snapshots/linter.ts.md @@ -767,7 +767,7 @@ Generated by [AVA](https://avajs.dev). }, { coverageInfo: [], - errorCount: 0, + errorCount: 1, fatalErrorCount: 0, filePath: 'webapp/test/integration/opaTests.qunit.html', messages: [ @@ -778,6 +778,14 @@ Generated by [AVA](https://avajs.dev). ruleId: 'no-deprecated-api', severity: 1, }, + { + column: 4, + line: 17, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + messageDetails: 'Migrate to \'data-sap-ui-animation-mode\' attribute AnimationMode (https://ui5.sap.com/1.120/#/api/module:sap/ui/core/AnimationMode)', + ruleId: 'no-deprecated-api', + severity: 2, + }, { column: 4, line: 18, @@ -1331,7 +1339,7 @@ Generated by [AVA](https://avajs.dev). }, { coverageInfo: [], - errorCount: 0, + errorCount: 1, fatalErrorCount: 0, filePath: 'webapp/test/integration/opaTests.qunit.html', messages: [ @@ -1342,6 +1350,13 @@ Generated by [AVA](https://avajs.dev). ruleId: 'no-deprecated-api', severity: 1, }, + { + column: 4, + line: 17, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + ruleId: 'no-deprecated-api', + severity: 2, + }, { column: 4, line: 18, diff --git a/test/lib/linter/snapshots/linter.ts.snap b/test/lib/linter/snapshots/linter.ts.snap index 0c5f21383..31aaa97bf 100644 Binary files a/test/lib/linter/snapshots/linter.ts.snap and b/test/lib/linter/snapshots/linter.ts.snap differ diff --git a/test/lib/snapshots/index.ts.md b/test/lib/snapshots/index.ts.md index 59e1bdc9b..ce0fa4312 100644 --- a/test/lib/snapshots/index.ts.md +++ b/test/lib/snapshots/index.ts.md @@ -233,7 +233,7 @@ Generated by [AVA](https://avajs.dev). }, { coverageInfo: [], - errorCount: 0, + errorCount: 1, fatalErrorCount: 0, filePath: 'webapp/test/integration/opaTests.qunit.html', messages: [ @@ -244,6 +244,13 @@ Generated by [AVA](https://avajs.dev). ruleId: 'no-deprecated-api', severity: 1, }, + { + column: 4, + line: 17, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + ruleId: 'no-deprecated-api', + severity: 2, + }, { column: 4, line: 18, @@ -637,7 +644,7 @@ Generated by [AVA](https://avajs.dev). }, { coverageInfo: [], - errorCount: 0, + errorCount: 1, fatalErrorCount: 0, filePath: 'webapp/test/integration/opaTests.qunit.html', messages: [ @@ -648,6 +655,13 @@ Generated by [AVA](https://avajs.dev). ruleId: 'no-deprecated-api', severity: 1, }, + { + column: 4, + line: 17, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + ruleId: 'no-deprecated-api', + severity: 2, + }, { column: 4, line: 18, @@ -1114,7 +1128,7 @@ Generated by [AVA](https://avajs.dev). }, { coverageInfo: [], - errorCount: 0, + errorCount: 1, fatalErrorCount: 0, filePath: 'webapp/test/integration/opaTests.qunit.html', messages: [ @@ -1125,6 +1139,14 @@ Generated by [AVA](https://avajs.dev). ruleId: 'no-deprecated-api', severity: 1, }, + { + column: 4, + line: 17, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + messageDetails: 'Migrate to \'data-sap-ui-animation-mode\' attribute AnimationMode (https://ui5.sap.com/1.120/#/api/module:sap/ui/core/AnimationMode)', + ruleId: 'no-deprecated-api', + severity: 2, + }, { column: 4, line: 18, @@ -1645,7 +1667,7 @@ Generated by [AVA](https://avajs.dev). }, { coverageInfo: [], - errorCount: 0, + errorCount: 1, fatalErrorCount: 0, filePath: 'webapp/test/integration/opaTests.qunit.html', messages: [ @@ -1656,6 +1678,13 @@ Generated by [AVA](https://avajs.dev). ruleId: 'no-deprecated-api', severity: 1, }, + { + column: 4, + line: 17, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + ruleId: 'no-deprecated-api', + severity: 2, + }, { column: 4, line: 18, @@ -2049,7 +2078,7 @@ Generated by [AVA](https://avajs.dev). }, { coverageInfo: [], - errorCount: 0, + errorCount: 1, fatalErrorCount: 0, filePath: 'webapp/test/integration/opaTests.qunit.html', messages: [ @@ -2060,6 +2089,13 @@ Generated by [AVA](https://avajs.dev). ruleId: 'no-deprecated-api', severity: 1, }, + { + column: 4, + line: 17, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + ruleId: 'no-deprecated-api', + severity: 2, + }, { column: 4, line: 18, @@ -2453,7 +2489,7 @@ Generated by [AVA](https://avajs.dev). }, { coverageInfo: [], - errorCount: 0, + errorCount: 1, fatalErrorCount: 0, filePath: 'webapp/test/integration/opaTests.qunit.html', messages: [ @@ -2464,6 +2500,13 @@ Generated by [AVA](https://avajs.dev). ruleId: 'no-deprecated-api', severity: 1, }, + { + column: 4, + line: 17, + message: 'Bootstrap parameter \'data-sap-ui-animation\' should be replaced with \'data-sap-ui-animation-mode\'', + ruleId: 'no-deprecated-api', + severity: 2, + }, { column: 4, line: 18, diff --git a/test/lib/snapshots/index.ts.snap b/test/lib/snapshots/index.ts.snap index 5c541f1eb..4d36498fa 100644 Binary files a/test/lib/snapshots/index.ts.snap and b/test/lib/snapshots/index.ts.snap differ