Skip to content

Commit

Permalink
test: Add fixture for directives
Browse files Browse the repository at this point in the history
JIRA: CPOUI5FOUNDATION-911
  • Loading branch information
RandomByte committed Oct 9, 2024
1 parent 506b107 commit 63e59e8
Show file tree
Hide file tree
Showing 5 changed files with 369 additions and 0 deletions.
97 changes: 97 additions & 0 deletions test/fixtures/linter/rules/Directives/Directives.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
sap.ui.define([
"sap/m/Button", "sap/m/DateTimeInput", "sap/base/util/includes", "sap/ui/Device", "sap/ui/core/library", "sap/ui/generic/app/navigation/service/NavigationHandler",
"sap/ui/table/Table", "sap/ui/table/plugins/MultiSelectionPlugin", "sap/ui/core/Configuration", "sap/m/library"
], function(Button, DateTimeInput, includes, Device, coreLib, NavigationHandler, Table, MultiSelectionPlugin, Configuration, mobileLib) {

// ui5lint-disable-next-line no-deprecated-api
var dateTimeInput = new DateTimeInput(); // IGNORE: Control is deprecated. A finding only appears for the module dependency, not for the usage.

var btn = new Button({
blocked: true, // ui5lint-disable-line no-deprecated-parameter -- IGNORE: Property "blocked" is deprecated
// ui5lint-disable-next-line no-deprecated-parameter
tap: () => console.log("Tapped") // IGNORE: Event "tap" is deprecated
});

/* ui5lint-disable */
btn.attachTap(function() { // IGNORE: Method "attachTap" is deprecated
console.log("Tapped");
});
/* ui5lint-enable */

btn.attachTap(function() { // REPORT
console.log("Tapped");
});

/* ui5lint-disable
no-deprecated-parameter,
no-deprecated-api
*/
var table = new Table({
plugins: [ // IGNORE: Aggregation "plugins" is deprecated
new MultiSelectionPlugin()
],
groupBy: "some-column" // IGNORE: Association "groupBy" is deprecated
});
/* ui5lint-enable no-deprecated-parameter */

includes([1], 1); // IGNORE: Function "includes" is deprecated

const getIncludesFunction = () => includes;
getIncludesFunction()([1], 1); // IGNORE: Function "includes" is deprecated
/* ui5lint-enable */

includes([1], 1); // REPORT: Function "includes" is deprecated

/* ui5lint-disable-next-line */
Configuration.getCompatibilityVersion("sapMDialogWithPadding"); // IGNORE: Method "getCompatibilityVersion" is deprecated
/* ui5lint-disable-next-line */
Configuration["getCompatibilityVersion"]("sapMDialogWithPadding"); // IGNORE: Method "getCompatibilityVersion" is deprecated

/* ui5lint-disable-next-line no-deprecated-property */
Device.browser.webview; // IGNORE: "webview" is deprecated
// ui5lint-disable-next-line no-deprecated-property
Device.browser["webview"]; // IGNORE: "webview" is deprecated

Device.browser["webview"]; // REPORT: "webview" is deprecated

// ui5lint-disable-next-line no-deprecated-property
Configuration.AnimationMode; // IGNORE: Property "AnimationMode" (Enum) is deprecated

// ui5lint-disable-next-line no-deprecated-property
coreLib.MessageType; // IGNORE: Enum "MessageType" is deprecated

// ui5lint-disable-next-line no-deprecated-property -- Followed by an intentionally Empty line
coreLib.MessageType; // REPORT: Enum "MessageType" is deprecated

// ui5lint-disable-next-line no-deprecated-property
let {BarColor, MessageType} = coreLib; // IGNORE: Enum "MessageType" is deprecated
// ui5lint-disable-next-line no-deprecated-property
({MessageType} = coreLib); // IGNORE: Enum "MessageType" is deprecated
MessageType.Error;

// ui5lint-disable-next-line no-deprecated-property
let {BarColor, MessageType: mt} = coreLib; // IGNORE: Enum "MessageType" is deprecated
// ui5lint-disable-next-line no-deprecated-property
({BarColor, MessageType: mt} = coreLib); // IGNORE: Enum "MessageType" is deprecated
mt.Error;

// ui5lint-disable-next-line no-deprecated-property
mobileLib.InputType.Date; // IGNORE: Enum value "InputType.Date" is deprecated

const navigationHandler = new NavigationHandler({});
// ui5lint-disable-next-line no-deprecated-property, no-deprecated-api
navigationHandler.storeInnerAppState({}); // IGNORE: Method "storeInnerAppState" is deprecated


// ui5lint-disable no-deprecated-property, no-global
new sap.m.Button({ // IGNORE: Global variable "sap"
blocked: true, // IGNORE: Property "blocked" is deprecated
tap: () => console.log("Tapped") // IGNORE: Event "tap" is deprecated
});
// ui5lint-enable

new sap.m.Button({ // REPORT: Global variable "sap"
blocked: true, // REPORT: Property "blocked" is deprecated
tap: () => console.log("Tapped") // REPORT: Event "tap" is deprecated
});
});
1 change: 1 addition & 0 deletions test/fixtures/linter/rules/Directives/Directives.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// TODO: TS version of Directives.js
5 changes: 5 additions & 0 deletions test/lib/linter/rules/Directives.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import {fileURLToPath} from "node:url";
import {runLintRulesTests} from "../_linterHelper.js";

const filePath = fileURLToPath(import.meta.url);
runLintRulesTests(filePath);
266 changes: 266 additions & 0 deletions test/lib/linter/rules/snapshots/Directives.ts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,266 @@
# Snapshot report for `test/lib/linter/rules/Directives.ts`

The actual snapshot is saved in `Directives.ts.snap`.

Generated by [AVA](https://avajs.dev).

## General: Directives.js

> Snapshot 1
[
{
coverageInfo: [],
errorCount: 29,
fatalErrorCount: 0,
filePath: 'Directives.js',
messages: [
{
column: 18,
line: 2,
message: 'Import of deprecated module \'sap/m/DateTimeInput\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 41,
line: 2,
message: 'Import of deprecated module \'sap/base/util/includes\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 107,
line: 2,
message: 'Import of deprecated module \'sap/ui/generic/app/navigation/service/NavigationHandler\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 69,
line: 3,
message: 'Import of deprecated module \'sap/ui/core/Configuration\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 3,
line: 10,
message: 'Use of deprecated property \'blocked\' of class \'Button\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 3,
line: 12,
message: 'Use of deprecated property \'tap\' of class \'Button\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 6,
line: 16,
message: 'Call to deprecated function \'attachTap\' of class \'Button\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 6,
line: 21,
message: 'Call to deprecated function \'attachTap\' of class \'Button\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 3,
line: 30,
message: 'Use of deprecated property \'plugins\' of class \'Table\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 3,
line: 33,
message: 'Use of deprecated property \'groupBy\' of class \'Table\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 2,
line: 37,
message: 'Call to deprecated function \'includes\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 2,
line: 40,
message: 'Call to deprecated function \'getIncludesFunction()\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 2,
line: 43,
message: 'Call to deprecated function \'includes\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 16,
line: 46,
message: 'Call to deprecated function \'getCompatibilityVersion\' of class \'Configuration\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 16,
line: 48,
message: 'Call to deprecated function \'getCompatibilityVersion\' of class \'Configuration\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 2,
line: 51,
message: 'Use of deprecated property \'webview\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-property',
severity: 2,
},
{
column: 2,
line: 53,
message: 'Use of deprecated property \'webview\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-property',
severity: 2,
},
{
column: 2,
line: 55,
message: 'Use of deprecated property \'webview\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-property',
severity: 2,
},
{
column: 2,
line: 58,
message: 'Use of deprecated property \'AnimationMode\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-property',
severity: 2,
},
{
column: 2,
line: 61,
message: 'Use of deprecated property \'MessageType\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-property',
severity: 2,
},
{
column: 2,
line: 64,
message: 'Use of deprecated property \'MessageType\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-property',
severity: 2,
},
{
column: 17,
line: 67,
message: 'Use of deprecated API \'MessageType\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 4,
line: 69,
message: 'Use of deprecated API \'MessageType\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 30,
line: 73,
message: 'Use of deprecated API \'mt\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 14,
line: 75,
message: 'Use of deprecated API \'MessageType\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 2,
line: 79,
message: 'Use of deprecated property \'Date\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-property',
severity: 2,
},
{
column: 20,
line: 83,
message: 'Call to deprecated function \'storeInnerAppState\' of class \'NavigationHandler\'',
messageDetails: 'Deprecated test message',
ruleId: 'no-deprecated-api',
severity: 2,
},
{
column: 6,
line: 87,
message: 'Access of global variable \'sap\' (sap.m.Button)',
ruleId: 'no-globals',
severity: 2,
},
{
column: 6,
line: 93,
message: 'Access of global variable \'sap\' (sap.m.Button)',
ruleId: 'no-globals',
severity: 2,
},
],
warningCount: 0,
},
]

## General: Directives.ts

> Snapshot 1
[
{
coverageInfo: [],
errorCount: 0,
fatalErrorCount: 0,
filePath: 'Directives.ts',
messages: [],
warningCount: 0,
},
]
Binary file not shown.

0 comments on commit 63e59e8

Please sign in to comment.