From 883bb9b4ffb6da371b883672c1aaec2eee544c7a Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 1 Mar 2023 16:57:27 +0200 Subject: [PATCH 01/42] refactor(framework): add type module to package.json --- packages/base/.npsrc.json | 3 + .../wdio.js => base/config/wdio.conf.cjs} | 0 .../lib/generate-asset-parameters/index.js | 4 +- packages/base/lib/generate-styles/index.js | 6 +- .../base/lib/generate-version-info/index.js | 2 +- ...package-scripts.js => package-scripts.cjs} | 4 +- packages/base/package.json | 1 + .../test/specs/ConfigurationChange.spec.js | 2 +- .../test/specs/ConfigurationScript.spec.js | 2 +- .../base/test/specs/ConfigurationURL.spec.js | 2 +- packages/base/test/specs/CustomTheme.spec.js | 2 +- .../base/test/specs/EventProvider.spec.js | 2 +- packages/base/test/specs/StaticArea.spec.js | 2 +- packages/base/test/specs/Theming.spec.js | 2 +- ...tion.js => UI5ElementInvalidation.spec.js} | 2 +- ...fecycle.js => UI5ElementLifecycle.spec.js} | 2 +- ...=> UI5ElementListenForChildPropChanges.js} | 2 +- ...taExt.js => UI5ElementMetadataExt.spec.js} | 2 +- ...s => UI5ElementPropertyValidation.spec.js} | 2 +- .../specs/UI5ElementPropsAndAttrs.spec.js | 2 +- ...adowDOM.js => UI5ElementShadowDOM.spec.js} | 2 +- ...lementSlots.js => UI5ElementSlots.spec.js} | 2 +- .../test/specs/WithComplexTemplate.spec.js | 2 +- packages/fiori/package-scripts.js | 2 +- packages/main/.npsrc.json | 3 + .../{postcss.config.js => postcss.config.cjs} | 2 +- .../config/postcss.themes/postcss.config.cjs} | 2 +- .../config/postcss.themes/postcss.config.js | 1 - .../config/{wdio.conf.js => wdio.conf.cjs} | 2 +- ...package-scripts.js => package-scripts.cjs} | 2 +- packages/main/package.json | 1 + .../test/pageobjects/DatePickerTestPage.js | 2 +- .../test/pageobjects/DayPickerTestPage.js | 2 +- .../main/test/pageobjects/ListTestPage.js | 2 +- packages/main/test/specs/Avatar.spec.js | 3 +- packages/main/test/specs/AvatarGroup.spec.js | 2 +- packages/main/test/specs/Badge.spec.js | 2 +- packages/main/test/specs/Breadcrumbs.spec.js | 2 +- .../main/test/specs/BusyIndicator.spec.js | 2 +- packages/main/test/specs/Button.spec.js | 3 +- packages/main/test/specs/Calendar.spec.js | 2 +- packages/main/test/specs/Card.spec.js | 2 +- packages/main/test/specs/Carousel.spec.js | 3 +- packages/main/test/specs/CheckBox.spec.js | 2 +- packages/main/test/specs/ColorPalette.spec.js | 2 +- .../test/specs/ColorPalettePopover.spec.js | 2 +- packages/main/test/specs/ColorPicker.spec.js | 3 +- .../main/test/specs/ComboBox.mobile.spec.js | 2 +- packages/main/test/specs/ComboBox.spec.js | 2 +- packages/main/test/specs/Components.spec.js | 2 +- packages/main/test/specs/DatePicker.spec.js | 4 +- .../main/test/specs/DateRangePicker.spec.js | 2 +- .../main/test/specs/DateTimePicker.spec.js | 2 +- packages/main/test/specs/DayPicker.spec.js | 4 +- packages/main/test/specs/Dialog.spec.js | 2 +- .../main/test/specs/DurationPicker.spec.js | 3 +- packages/main/test/specs/Eventing.spec.js | 2 +- packages/main/test/specs/F6Test.spec.js | 3 +- packages/main/test/specs/FileUploader.spec.js | 2 +- packages/main/test/specs/FormSupport.spec.js | 2 +- packages/main/test/specs/Icon.spec.js | 2 +- packages/main/test/specs/Input.mobile.spec.js | 2 +- packages/main/test/specs/Input.spec.js | 2 +- .../main/test/specs/ItemNavigation.spec.js | 2 +- packages/main/test/specs/Label.spec.js | 2 +- packages/main/test/specs/Link.spec.js | 2 +- packages/main/test/specs/List.spec.js | 4 +- .../main/test/specs/LitKeyFunction.spec.js | 2 +- packages/main/test/specs/Menu.spec.js | 2 +- packages/main/test/specs/MessageStrip.spec.js | 2 +- .../test/specs/MultiComboBox.mobile.spec.js | 2 +- .../main/test/specs/MultiComboBox.spec.js | 2 +- .../main/test/specs/MultiInput.mobile.spec.js | 2 +- packages/main/test/specs/MultiInput.spec.js | 2 +- packages/main/test/specs/Panel.spec.js | 2 +- packages/main/test/specs/Popover.spec.js | 2 +- .../main/test/specs/ProgressIndicator.spec.js | 2 +- packages/main/test/specs/RTL.spec.js | 2 +- packages/main/test/specs/RadioButton.spec.js | 2 +- packages/main/test/specs/RangeSlider.spec.js | 2 +- .../main/test/specs/RatingIndicator.spec.js | 2 +- .../specs/ResponsivePopover.mobile.spec.js | 2 +- .../main/test/specs/ResponsivePopover.spec.js | 2 +- .../main/test/specs/SegmentedButton.spec.js | 2 +- .../main/test/specs/Select.mobile.spec.js | 2 +- packages/main/test/specs/Select.spec.js | 2 +- packages/main/test/specs/Slider.spec.js | 2 +- packages/main/test/specs/SplitButton.spec.js | 2 +- packages/main/test/specs/StepInput.spec.js | 2 +- packages/main/test/specs/Switch.spec.js | 2 +- .../test/specs/TabContainer.mobile.spec.js | 2 +- packages/main/test/specs/TabContainer.spec.js | 2 +- packages/main/test/specs/Table.spec.js | 2 +- .../main/test/specs/TableGrouping.spec.js | 2 +- packages/main/test/specs/TextArea.spec.js | 2 +- packages/main/test/specs/TimePicker.spec.js | 2 +- packages/main/test/specs/Title.spec.js | 2 +- packages/main/test/specs/Toast.spec.js | 2 +- packages/main/test/specs/ToggleButton.spec.js | 2 +- packages/main/test/specs/Tree.spec.js | 2 +- packages/main/test/specs/WheelSlider.spec.js | 2 +- .../test/specs/base/AriaLabelHelper.spec.js | 2 +- .../main/test/specs/base/DOMObserver.spec.js | 2 +- .../test/specs/base/InvisibleMessage.spec.js | 2 +- .../components-package/{nps.js => nps.cjs} | 14 +- ...s.components.js => postcss.components.cjs} | 0 .../{postcss.themes.js => postcss.themes.cjs} | 0 .../{vite.config.js => vite.config.cjs} | 2 +- packages/tools/components-package/wdio.cjs | 393 ++++++++++++++++++ ...lugin.js => virtual-index-html-plugin.cjs} | 0 .../{test-runner.js => test-runner.cjs} | 2 +- 111 files changed, 515 insertions(+), 121 deletions(-) create mode 100644 packages/base/.npsrc.json rename packages/{tools/components-package/wdio.js => base/config/wdio.conf.cjs} (100%) rename packages/base/{package-scripts.js => package-scripts.cjs} (97%) rename packages/base/test/specs/{UI5ElementInvalidation.js => UI5ElementInvalidation.spec.js} (99%) rename packages/base/test/specs/{UI5ElementLifecycle.js => UI5ElementLifecycle.spec.js} (98%) rename packages/base/test/specs/{UI5ElementListenForChildPropChanges.spec.js => UI5ElementListenForChildPropChanges.js} (98%) rename packages/base/test/specs/{UI5ElementMetadataExt.js => UI5ElementMetadataExt.spec.js} (96%) rename packages/base/test/specs/{UI5ElementPropertyValidation.js => UI5ElementPropertyValidation.spec.js} (91%) rename packages/base/test/specs/{UI5ElementShadowDOM.js => UI5ElementShadowDOM.spec.js} (95%) rename packages/base/test/specs/{UI5ElementSlots.js => UI5ElementSlots.spec.js} (97%) create mode 100644 packages/main/.npsrc.json rename packages/main/config/postcss.components/{postcss.config.js => postcss.config.cjs} (66%) rename packages/{base/config/wdio.conf.js => main/config/postcss.themes/postcss.config.cjs} (69%) delete mode 100644 packages/main/config/postcss.themes/postcss.config.js rename packages/main/config/{wdio.conf.js => wdio.conf.cjs} (94%) rename packages/main/{package-scripts.js => package-scripts.cjs} (91%) rename packages/tools/components-package/{nps.js => nps.cjs} (94%) rename packages/tools/components-package/{postcss.components.js => postcss.components.cjs} (100%) rename packages/tools/components-package/{postcss.themes.js => postcss.themes.cjs} (100%) rename packages/tools/components-package/{vite.config.js => vite.config.cjs} (93%) create mode 100644 packages/tools/components-package/wdio.cjs rename packages/tools/lib/dev-server/{virtual-index-html-plugin.js => virtual-index-html-plugin.cjs} (100%) rename packages/tools/lib/test-runner/{test-runner.js => test-runner.cjs} (97%) diff --git a/packages/base/.npsrc.json b/packages/base/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/base/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/tools/components-package/wdio.js b/packages/base/config/wdio.conf.cjs similarity index 100% rename from packages/tools/components-package/wdio.js rename to packages/base/config/wdio.conf.cjs diff --git a/packages/base/lib/generate-asset-parameters/index.js b/packages/base/lib/generate-asset-parameters/index.js index d3b0d8e744bd..c02db71c7214 100644 --- a/packages/base/lib/generate-asset-parameters/index.js +++ b/packages/base/lib/generate-asset-parameters/index.js @@ -1,5 +1,5 @@ -const fs = require('fs').promises; -const assets = require('@ui5/webcomponents-tools/assets-meta.js'); +import fs from "fs/promises"; +import assets from "@ui5/webcomponents-tools/assets-meta.js"; const fileContent = `const assetParameters = ${JSON.stringify(assets)}; diff --git a/packages/base/lib/generate-styles/index.js b/packages/base/lib/generate-styles/index.js index ecf137447b21..8583844c0dcf 100644 --- a/packages/base/lib/generate-styles/index.js +++ b/packages/base/lib/generate-styles/index.js @@ -1,6 +1,6 @@ -const fs = require('fs').promises; -const path = require('path'); -const CleanCSS = require('clean-css'); +import fs from 'fs/promises'; +import path from "path"; +import CleanCSS from "clean-css"; const generate = async () => { await fs.mkdir("src/generated/css/", {recursive: true}); diff --git a/packages/base/lib/generate-version-info/index.js b/packages/base/lib/generate-version-info/index.js index e47f1becf957..b7bd68d1a722 100644 --- a/packages/base/lib/generate-version-info/index.js +++ b/packages/base/lib/generate-version-info/index.js @@ -1,4 +1,4 @@ -const fs = require('fs').promises; +import fs from "fs/promises"; const generate = async () => { const version = JSON.parse(await fs.readFile("package.json")).version; diff --git a/packages/base/package-scripts.js b/packages/base/package-scripts.cjs similarity index 97% rename from packages/base/package-scripts.js rename to packages/base/package-scripts.cjs index 72aca466c918..4e12b86631d3 100644 --- a/packages/base/package-scripts.js +++ b/packages/base/package-scripts.cjs @@ -10,7 +10,7 @@ const preprocessJSDocScript = resolve.sync("@ui5/webcomponents-tools/lib/jsdoc/p const LIB = path.join(__dirname, `../tools/lib/`); -const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; +const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}`; const scripts = { @@ -61,7 +61,7 @@ const scripts = { test: { default: 'concurrently "nps test.wdio"', ssr: `mocha test/ssr`, - wdio: `node "${LIB}/test-runner/test-runner.js"` + wdio: `node "${LIB}/test-runner/test-runner.cjs"` }, }; diff --git a/packages/base/package.json b/packages/base/package.json index 746bc71b6189..dcc9fa4f05fd 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -4,6 +4,7 @@ "description": "UI5 Web Components: webcomponents.base", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", + "type": "module", "module": "index.js", "keywords": [ "openui5", diff --git a/packages/base/test/specs/ConfigurationChange.spec.js b/packages/base/test/specs/ConfigurationChange.spec.js index c214fa9a7117..2e980f36acfa 100644 --- a/packages/base/test/specs/ConfigurationChange.spec.js +++ b/packages/base/test/specs/ConfigurationChange.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Some configuration options can be changed at runtime", () => { before(async () => { diff --git a/packages/base/test/specs/ConfigurationScript.spec.js b/packages/base/test/specs/ConfigurationScript.spec.js index 8ae85eae1e1f..729f31a0ba22 100644 --- a/packages/base/test/specs/ConfigurationScript.spec.js +++ b/packages/base/test/specs/ConfigurationScript.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Configuration script has effect", () => { before(async () => { diff --git a/packages/base/test/specs/ConfigurationURL.spec.js b/packages/base/test/specs/ConfigurationURL.spec.js index 1ee13b9b8b20..89a282391ab4 100644 --- a/packages/base/test/specs/ConfigurationURL.spec.js +++ b/packages/base/test/specs/ConfigurationURL.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Some settings can be set via SAP UI URL params", () => { before(async () => { diff --git a/packages/base/test/specs/CustomTheme.spec.js b/packages/base/test/specs/CustomTheme.spec.js index 4eb223c2030c..cc4d3d4dae08 100644 --- a/packages/base/test/specs/CustomTheme.spec.js +++ b/packages/base/test/specs/CustomTheme.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Custom themes can be registered", () => { before(async () => { diff --git a/packages/base/test/specs/EventProvider.spec.js b/packages/base/test/specs/EventProvider.spec.js index 1c8ae580ffb8..836125e8d3cd 100644 --- a/packages/base/test/specs/EventProvider.spec.js +++ b/packages/base/test/specs/EventProvider.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Event provider attaches and detaches listeners properly", () => { before(async () => { diff --git a/packages/base/test/specs/StaticArea.spec.js b/packages/base/test/specs/StaticArea.spec.js index 5ba9aaed2c55..2abef25d28b9 100644 --- a/packages/base/test/specs/StaticArea.spec.js +++ b/packages/base/test/specs/StaticArea.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Some configuration options can be changed at runtime", () => { before(async () => { diff --git a/packages/base/test/specs/Theming.spec.js b/packages/base/test/specs/Theming.spec.js index 67e4d7f60a3a..094f7d73219f 100644 --- a/packages/base/test/specs/Theming.spec.js +++ b/packages/base/test/specs/Theming.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Theming works", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementInvalidation.js b/packages/base/test/specs/UI5ElementInvalidation.spec.js similarity index 99% rename from packages/base/test/specs/UI5ElementInvalidation.js rename to packages/base/test/specs/UI5ElementInvalidation.spec.js index 83800345d184..19cb0401f813 100644 --- a/packages/base/test/specs/UI5ElementInvalidation.js +++ b/packages/base/test/specs/UI5ElementInvalidation.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Invalidation works", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementLifecycle.js b/packages/base/test/specs/UI5ElementLifecycle.spec.js similarity index 98% rename from packages/base/test/specs/UI5ElementLifecycle.js rename to packages/base/test/specs/UI5ElementLifecycle.spec.js index 900ceb52525c..e4e5a5f4bba6 100644 --- a/packages/base/test/specs/UI5ElementLifecycle.js +++ b/packages/base/test/specs/UI5ElementLifecycle.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Lifecycle works", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js b/packages/base/test/specs/UI5ElementListenForChildPropChanges.js similarity index 98% rename from packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js rename to packages/base/test/specs/UI5ElementListenForChildPropChanges.js index 45135eacaf7f..6925903a2a3c 100644 --- a/packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js +++ b/packages/base/test/specs/UI5ElementListenForChildPropChanges.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Metadata slot invalidateOnChildChange works", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementMetadataExt.js b/packages/base/test/specs/UI5ElementMetadataExt.spec.js similarity index 96% rename from packages/base/test/specs/UI5ElementMetadataExt.js rename to packages/base/test/specs/UI5ElementMetadataExt.spec.js index 8a5848edcff5..bb2d727bd321 100644 --- a/packages/base/test/specs/UI5ElementMetadataExt.js +++ b/packages/base/test/specs/UI5ElementMetadataExt.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Metadata can be extended", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementPropertyValidation.js b/packages/base/test/specs/UI5ElementPropertyValidation.spec.js similarity index 91% rename from packages/base/test/specs/UI5ElementPropertyValidation.js rename to packages/base/test/specs/UI5ElementPropertyValidation.spec.js index fbac703b61de..084094323121 100644 --- a/packages/base/test/specs/UI5ElementPropertyValidation.js +++ b/packages/base/test/specs/UI5ElementPropertyValidation.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Properties can only have values, restricted to their types", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementPropsAndAttrs.spec.js b/packages/base/test/specs/UI5ElementPropsAndAttrs.spec.js index 523e0d4aa908..bcf6c6582a2d 100644 --- a/packages/base/test/specs/UI5ElementPropsAndAttrs.spec.js +++ b/packages/base/test/specs/UI5ElementPropsAndAttrs.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Properties and attributes convert to each other", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementShadowDOM.js b/packages/base/test/specs/UI5ElementShadowDOM.spec.js similarity index 95% rename from packages/base/test/specs/UI5ElementShadowDOM.js rename to packages/base/test/specs/UI5ElementShadowDOM.spec.js index 35453a1d4eaa..a75692a4ac5f 100644 --- a/packages/base/test/specs/UI5ElementShadowDOM.js +++ b/packages/base/test/specs/UI5ElementShadowDOM.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("The framework can define web components", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementSlots.js b/packages/base/test/specs/UI5ElementSlots.spec.js similarity index 97% rename from packages/base/test/specs/UI5ElementSlots.js rename to packages/base/test/specs/UI5ElementSlots.spec.js index 95c977eac865..89a2cc6f168d 100644 --- a/packages/base/test/specs/UI5ElementSlots.js +++ b/packages/base/test/specs/UI5ElementSlots.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Slots work properly", () => { before(async () => { diff --git a/packages/base/test/specs/WithComplexTemplate.spec.js b/packages/base/test/specs/WithComplexTemplate.spec.js index c9e6ba2753de..e6cd171a0c82 100644 --- a/packages/base/test/specs/WithComplexTemplate.spec.js +++ b/packages/base/test/specs/WithComplexTemplate.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Theming works", () => { before(async () => { diff --git a/packages/fiori/package-scripts.js b/packages/fiori/package-scripts.js index 6bb0c4ea2a66..e50bf8babbd2 100644 --- a/packages/fiori/package-scripts.js +++ b/packages/fiori/package-scripts.js @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/components-package/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/components-package/nps.cjs"); const options = { port: 8081, diff --git a/packages/main/.npsrc.json b/packages/main/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/main/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/main/config/postcss.components/postcss.config.js b/packages/main/config/postcss.components/postcss.config.cjs similarity index 66% rename from packages/main/config/postcss.components/postcss.config.js rename to packages/main/config/postcss.components/postcss.config.cjs index b496f7835c1a..9ccf01441c54 100644 --- a/packages/main/config/postcss.components/postcss.config.js +++ b/packages/main/config/postcss.components/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.cjs"); diff --git a/packages/base/config/wdio.conf.js b/packages/main/config/postcss.themes/postcss.config.cjs similarity index 69% rename from packages/base/config/wdio.conf.js rename to packages/main/config/postcss.themes/postcss.config.cjs index ec46d09522f7..88f256aedb71 100644 --- a/packages/base/config/wdio.conf.js +++ b/packages/main/config/postcss.themes/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/wdio.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.cjs"); diff --git a/packages/main/config/postcss.themes/postcss.config.js b/packages/main/config/postcss.themes/postcss.config.js deleted file mode 100644 index f7b0dfe5e3e8..000000000000 --- a/packages/main/config/postcss.themes/postcss.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); diff --git a/packages/main/config/wdio.conf.js b/packages/main/config/wdio.conf.cjs similarity index 94% rename from packages/main/config/wdio.conf.js rename to packages/main/config/wdio.conf.cjs index 9aa03d7ed07b..07c80edae583 100644 --- a/packages/main/config/wdio.conf.js +++ b/packages/main/config/wdio.conf.cjs @@ -1,4 +1,4 @@ -const wdio = require("@ui5/webcomponents-tools/components-package/wdio.js"); +const wdio = require("@ui5/webcomponents-tools/components-package/wdio.cjs"); wdio.config.suites = { "suite1": [ diff --git a/packages/main/package-scripts.js b/packages/main/package-scripts.cjs similarity index 91% rename from packages/main/package-scripts.js rename to packages/main/package-scripts.cjs index a3af9d553574..7262b85c8117 100644 --- a/packages/main/package-scripts.js +++ b/packages/main/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/components-package/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/components-package/nps.cjs"); const options = { port: 8080, diff --git a/packages/main/package.json b/packages/main/package.json index 57808bb1e1df..0d9ab72f8a1d 100644 --- a/packages/main/package.json +++ b/packages/main/package.json @@ -5,6 +5,7 @@ "ui5": { "webComponentsPackage": true }, + "type": "module", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", "private": false, diff --git a/packages/main/test/pageobjects/DatePickerTestPage.js b/packages/main/test/pageobjects/DatePickerTestPage.js index cd11e262965a..d5b996639c49 100644 --- a/packages/main/test/pageobjects/DatePickerTestPage.js +++ b/packages/main/test/pageobjects/DatePickerTestPage.js @@ -165,4 +165,4 @@ class DatePickerTestPage { } } -module.exports = new DatePickerTestPage(); +export default new DatePickerTestPage(); diff --git a/packages/main/test/pageobjects/DayPickerTestPage.js b/packages/main/test/pageobjects/DayPickerTestPage.js index 7095139979a6..fc8cdc8689db 100644 --- a/packages/main/test/pageobjects/DayPickerTestPage.js +++ b/packages/main/test/pageobjects/DayPickerTestPage.js @@ -15,4 +15,4 @@ class DayPickerTestHelper { } } -module.exports = new DayPickerTestHelper(); +export default new DayPickerTestHelper(); diff --git a/packages/main/test/pageobjects/ListTestPage.js b/packages/main/test/pageobjects/ListTestPage.js index dd44ce032ed7..5cfaca640fcf 100644 --- a/packages/main/test/pageobjects/ListTestPage.js +++ b/packages/main/test/pageobjects/ListTestPage.js @@ -16,4 +16,4 @@ class ListTestPage { } } -module.exports = new ListTestPage(); +export default new ListTestPage() diff --git a/packages/main/test/specs/Avatar.spec.js b/packages/main/test/specs/Avatar.spec.js index de802a078a3a..e623b01f2ae5 100644 --- a/packages/main/test/specs/Avatar.spec.js +++ b/packages/main/test/specs/Avatar.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("Avatar", () => { before(async () => { diff --git a/packages/main/test/specs/AvatarGroup.spec.js b/packages/main/test/specs/AvatarGroup.spec.js index 3a2164c73bc5..0256a795b65b 100644 --- a/packages/main/test/specs/AvatarGroup.spec.js +++ b/packages/main/test/specs/AvatarGroup.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; async function getResourceBundleTexts(keys) { return browser.executeAsync((keys, done) => { diff --git a/packages/main/test/specs/Badge.spec.js b/packages/main/test/specs/Badge.spec.js index c4bb7bf53241..704edc9f9afa 100644 --- a/packages/main/test/specs/Badge.spec.js +++ b/packages/main/test/specs/Badge.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Badge rendering", async () => { before(async () => { diff --git a/packages/main/test/specs/Breadcrumbs.spec.js b/packages/main/test/specs/Breadcrumbs.spec.js index da305c99ae6b..0c3612443b39 100644 --- a/packages/main/test/specs/Breadcrumbs.spec.js +++ b/packages/main/test/specs/Breadcrumbs.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const KEYS = { SHIFT: '\uE008', CTRL: '\uE009', diff --git a/packages/main/test/specs/BusyIndicator.spec.js b/packages/main/test/specs/BusyIndicator.spec.js index 98e219e76f0c..0018d97ee903 100644 --- a/packages/main/test/specs/BusyIndicator.spec.js +++ b/packages/main/test/specs/BusyIndicator.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("BusyIndicator general interaction", () => { diff --git a/packages/main/test/specs/Button.spec.js b/packages/main/test/specs/Button.spec.js index b10317141710..3ef531104d06 100644 --- a/packages/main/test/specs/Button.spec.js +++ b/packages/main/test/specs/Button.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; -// +import { assert } from "chai"; describe("Button general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Calendar.spec.js b/packages/main/test/specs/Calendar.spec.js index 7d95c5ebc418..ce4d7b6eb159 100644 --- a/packages/main/test/specs/Calendar.spec.js +++ b/packages/main/test/specs/Calendar.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Calendar general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Card.spec.js b/packages/main/test/specs/Card.spec.js index bd85fbc002b4..8f48e313056f 100644 --- a/packages/main/test/specs/Card.spec.js +++ b/packages/main/test/specs/Card.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Card general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Carousel.spec.js b/packages/main/test/specs/Carousel.spec.js index 0b04040945ec..2f8e93282e2e 100644 --- a/packages/main/test/specs/Carousel.spec.js +++ b/packages/main/test/specs/Carousel.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("Carousel general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/CheckBox.spec.js b/packages/main/test/specs/CheckBox.spec.js index d8176ba7c13b..d88ffc4ca961 100644 --- a/packages/main/test/specs/CheckBox.spec.js +++ b/packages/main/test/specs/CheckBox.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("CheckBox general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/ColorPalette.spec.js b/packages/main/test/specs/ColorPalette.spec.js index 62d37bd51c77..16b7de97bac4 100644 --- a/packages/main/test/specs/ColorPalette.spec.js +++ b/packages/main/test/specs/ColorPalette.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ColorPalette interactions", () => { before(async () => { diff --git a/packages/main/test/specs/ColorPalettePopover.spec.js b/packages/main/test/specs/ColorPalettePopover.spec.js index 8f20374f66bc..7e4088df2c4c 100644 --- a/packages/main/test/specs/ColorPalettePopover.spec.js +++ b/packages/main/test/specs/ColorPalettePopover.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ColorPalette interactions", () => { before(async () => { diff --git a/packages/main/test/specs/ColorPicker.spec.js b/packages/main/test/specs/ColorPicker.spec.js index 0caf95487113..a6435ceb000e 100644 --- a/packages/main/test/specs/ColorPicker.spec.js +++ b/packages/main/test/specs/ColorPicker.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("Color Picker general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/ComboBox.mobile.spec.js b/packages/main/test/specs/ComboBox.mobile.spec.js index 2bbdf34bfce0..bb580996aac6 100644 --- a/packages/main/test/specs/ComboBox.mobile.spec.js +++ b/packages/main/test/specs/ComboBox.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Basic mobile picker rendering and interaction", () => { before(async () => { diff --git a/packages/main/test/specs/ComboBox.spec.js b/packages/main/test/specs/ComboBox.spec.js index d208730c86c4..f6cbbc993eff 100644 --- a/packages/main/test/specs/ComboBox.spec.js +++ b/packages/main/test/specs/ComboBox.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("General interaction", () => { diff --git a/packages/main/test/specs/Components.spec.js b/packages/main/test/specs/Components.spec.js index 2e2c898db437..d55356596386 100644 --- a/packages/main/test/specs/Components.spec.js +++ b/packages/main/test/specs/Components.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const assertBooleanProperty = async (el, prop) => { assert.notOk(await el.getProperty(prop), "the value should be false by default."); diff --git a/packages/main/test/specs/DatePicker.spec.js b/packages/main/test/specs/DatePicker.spec.js index b607f2cccffb..ca7367fe5a4c 100644 --- a/packages/main/test/specs/DatePicker.spec.js +++ b/packages/main/test/specs/DatePicker.spec.js @@ -1,5 +1,5 @@ -const datepicker = require("../pageobjects/DatePickerTestPage"); -const assert = require("chai").assert; +import datepicker from "../pageobjects/DatePickerTestPage"; +import { assert } from "chai"; describe("Date Picker Tests", () => { before(async () => { diff --git a/packages/main/test/specs/DateRangePicker.spec.js b/packages/main/test/specs/DateRangePicker.spec.js index 3d7c3a0ffd89..67475fe3bce6 100644 --- a/packages/main/test/specs/DateRangePicker.spec.js +++ b/packages/main/test/specs/DateRangePicker.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("DateRangePicker general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/DateTimePicker.spec.js b/packages/main/test/specs/DateTimePicker.spec.js index 0a140821accf..832f11391a04 100644 --- a/packages/main/test/specs/DateTimePicker.spec.js +++ b/packages/main/test/specs/DateTimePicker.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const openPickerById = async (id, options) => { await browser.$(`#${id}`).scrollIntoView(); diff --git a/packages/main/test/specs/DayPicker.spec.js b/packages/main/test/specs/DayPicker.spec.js index 32771fe06efc..ae34288835c7 100644 --- a/packages/main/test/specs/DayPicker.spec.js +++ b/packages/main/test/specs/DayPicker.spec.js @@ -1,5 +1,5 @@ -const daypicker = require("../pageobjects/DayPickerTestPage"); -const assert = require("chai").assert; +import daypicker from "../pageobjects/DayPickerTestPage"; +import { assert } from "chai"; describe("Day Picker Tests", () => { before(async () => { diff --git a/packages/main/test/specs/Dialog.spec.js b/packages/main/test/specs/Dialog.spec.js index 2403207bf9df..405fc96104a6 100644 --- a/packages/main/test/specs/Dialog.spec.js +++ b/packages/main/test/specs/Dialog.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Dialog general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/DurationPicker.spec.js b/packages/main/test/specs/DurationPicker.spec.js index 8d7b0d8e46cd..b4ccd4c524ff 100644 --- a/packages/main/test/specs/DurationPicker.spec.js +++ b/packages/main/test/specs/DurationPicker.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("Duration Picker general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Eventing.spec.js b/packages/main/test/specs/Eventing.spec.js index 4a791f8c6ef5..4a36a935d886 100644 --- a/packages/main/test/specs/Eventing.spec.js +++ b/packages/main/test/specs/Eventing.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Eventing", () => { diff --git a/packages/main/test/specs/F6Test.spec.js b/packages/main/test/specs/F6Test.spec.js index 55480570e61f..e01292f79a75 100644 --- a/packages/main/test/specs/F6Test.spec.js +++ b/packages/main/test/specs/F6Test.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("F6 Test", () => { describe("Forward", () => { diff --git a/packages/main/test/specs/FileUploader.spec.js b/packages/main/test/specs/FileUploader.spec.js index b95829f7dab5..d8ffcc5c4f4a 100644 --- a/packages/main/test/specs/FileUploader.spec.js +++ b/packages/main/test/specs/FileUploader.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("API", () => { before(async () => { diff --git a/packages/main/test/specs/FormSupport.spec.js b/packages/main/test/specs/FormSupport.spec.js index 7439aac5e37a..029d62b4a677 100644 --- a/packages/main/test/specs/FormSupport.spec.js +++ b/packages/main/test/specs/FormSupport.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Form support", () => { diff --git a/packages/main/test/specs/Icon.spec.js b/packages/main/test/specs/Icon.spec.js index 90d6599dc9e9..6ece695fd3d0 100644 --- a/packages/main/test/specs/Icon.spec.js +++ b/packages/main/test/specs/Icon.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Icon general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Input.mobile.spec.js b/packages/main/test/specs/Input.mobile.spec.js index 49fdb2dd9ca6..e9ad7ca138c0 100644 --- a/packages/main/test/specs/Input.mobile.spec.js +++ b/packages/main/test/specs/Input.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Basic mobile picker rendering and interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Input.spec.js b/packages/main/test/specs/Input.spec.js index 6e2fef17fe64..951fb72135f9 100644 --- a/packages/main/test/specs/Input.spec.js +++ b/packages/main/test/specs/Input.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Attributes propagation", () => { before(async () => { diff --git a/packages/main/test/specs/ItemNavigation.spec.js b/packages/main/test/specs/ItemNavigation.spec.js index fb7fa8d35c7e..b01b84d50954 100644 --- a/packages/main/test/specs/ItemNavigation.spec.js +++ b/packages/main/test/specs/ItemNavigation.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Item Navigation Tests", () => { before(async () => { diff --git a/packages/main/test/specs/Label.spec.js b/packages/main/test/specs/Label.spec.js index 71b71e78649a..2e420021f5fa 100644 --- a/packages/main/test/specs/Label.spec.js +++ b/packages/main/test/specs/Label.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("General API", () => { before(async () => { diff --git a/packages/main/test/specs/Link.spec.js b/packages/main/test/specs/Link.spec.js index e6615af08259..14950370a4e5 100644 --- a/packages/main/test/specs/Link.spec.js +++ b/packages/main/test/specs/Link.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const KEYS = { SHIFT: '\uE008', ALT: '\uE00A', diff --git a/packages/main/test/specs/List.spec.js b/packages/main/test/specs/List.spec.js index d36b36be6841..3c0e1d894fa8 100644 --- a/packages/main/test/specs/List.spec.js +++ b/packages/main/test/specs/List.spec.js @@ -1,5 +1,5 @@ -const list = require("../pageobjects/ListTestPage"); -const assert = require("chai").assert; +import list from "../pageobjects/ListTestPage"; +import { assert } from "chai"; /** * diff --git a/packages/main/test/specs/LitKeyFunction.spec.js b/packages/main/test/specs/LitKeyFunction.spec.js index c5c2f9f64101..3ce262a831ac 100644 --- a/packages/main/test/specs/LitKeyFunction.spec.js +++ b/packages/main/test/specs/LitKeyFunction.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Lit HTML key function for #each", async () => { before(async () => { diff --git a/packages/main/test/specs/Menu.spec.js b/packages/main/test/specs/Menu.spec.js index 5bdc3f74233a..5cbd7778cedc 100644 --- a/packages/main/test/specs/Menu.spec.js +++ b/packages/main/test/specs/Menu.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Menu interaction", () => { it("Menu opens after button click", async () => { diff --git a/packages/main/test/specs/MessageStrip.spec.js b/packages/main/test/specs/MessageStrip.spec.js index 17a035e5f22d..c8d630154192 100644 --- a/packages/main/test/specs/MessageStrip.spec.js +++ b/packages/main/test/specs/MessageStrip.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("MessageStrip general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/MultiComboBox.mobile.spec.js b/packages/main/test/specs/MultiComboBox.mobile.spec.js index e7e30293ea16..cde336b98467 100644 --- a/packages/main/test/specs/MultiComboBox.mobile.spec.js +++ b/packages/main/test/specs/MultiComboBox.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Basic interaction", () => { before(async () => { diff --git a/packages/main/test/specs/MultiComboBox.spec.js b/packages/main/test/specs/MultiComboBox.spec.js index 45263ec00c95..859e6faddd1c 100644 --- a/packages/main/test/specs/MultiComboBox.spec.js +++ b/packages/main/test/specs/MultiComboBox.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("MultiComboBox general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/MultiInput.mobile.spec.js b/packages/main/test/specs/MultiInput.mobile.spec.js index 5e356aa2df45..bafb3b4e487f 100644 --- a/packages/main/test/specs/MultiInput.mobile.spec.js +++ b/packages/main/test/specs/MultiInput.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const getTokenizerPopoverId = async (inputId) => { return await browser.executeAsync(async (inputId, done) => { diff --git a/packages/main/test/specs/MultiInput.spec.js b/packages/main/test/specs/MultiInput.spec.js index bf601f89b81c..fe81d993267c 100644 --- a/packages/main/test/specs/MultiInput.spec.js +++ b/packages/main/test/specs/MultiInput.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const getTokenizerPopoverId = async (inputId) => { return await browser.executeAsync(async (inputId, done) => { diff --git a/packages/main/test/specs/Panel.spec.js b/packages/main/test/specs/Panel.spec.js index b6df7b96b4a0..9c1ec8ebaa33 100644 --- a/packages/main/test/specs/Panel.spec.js +++ b/packages/main/test/specs/Panel.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Panel general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Popover.spec.js b/packages/main/test/specs/Popover.spec.js index fe9f476b7905..7b1880765487 100644 --- a/packages/main/test/specs/Popover.spec.js +++ b/packages/main/test/specs/Popover.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Attributes propagation", () => { before(async () => { diff --git a/packages/main/test/specs/ProgressIndicator.spec.js b/packages/main/test/specs/ProgressIndicator.spec.js index 98bb02e55520..f8612777af02 100644 --- a/packages/main/test/specs/ProgressIndicator.spec.js +++ b/packages/main/test/specs/ProgressIndicator.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("API", () => { before(async () => { diff --git a/packages/main/test/specs/RTL.spec.js b/packages/main/test/specs/RTL.spec.js index f9cc4cf2e8de..5a2469c997c2 100644 --- a/packages/main/test/specs/RTL.spec.js +++ b/packages/main/test/specs/RTL.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("RTL", () => { it("language forces RTL, if RTL not specified", async () => { diff --git a/packages/main/test/specs/RadioButton.spec.js b/packages/main/test/specs/RadioButton.spec.js index 5c12c798e781..fea225470e77 100644 --- a/packages/main/test/specs/RadioButton.spec.js +++ b/packages/main/test/specs/RadioButton.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Rendering", () => { before(async () => { diff --git a/packages/main/test/specs/RangeSlider.spec.js b/packages/main/test/specs/RangeSlider.spec.js index 2bdea0af6ac6..601b4cb7c593 100644 --- a/packages/main/test/specs/RangeSlider.spec.js +++ b/packages/main/test/specs/RangeSlider.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Testing Range Slider interactions", () => { diff --git a/packages/main/test/specs/RatingIndicator.spec.js b/packages/main/test/specs/RatingIndicator.spec.js index 0524b0d8d55d..409051e24540 100644 --- a/packages/main/test/specs/RatingIndicator.spec.js +++ b/packages/main/test/specs/RatingIndicator.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Rating Indicator general interaction", () => { diff --git a/packages/main/test/specs/ResponsivePopover.mobile.spec.js b/packages/main/test/specs/ResponsivePopover.mobile.spec.js index ba6ac4b92ea5..76238cfd233a 100644 --- a/packages/main/test/specs/ResponsivePopover.mobile.spec.js +++ b/packages/main/test/specs/ResponsivePopover.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ResponsivePopover mobile general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/ResponsivePopover.spec.js b/packages/main/test/specs/ResponsivePopover.spec.js index 6d78e26ac3ad..4a7c660f68e1 100644 --- a/packages/main/test/specs/ResponsivePopover.spec.js +++ b/packages/main/test/specs/ResponsivePopover.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ResponsivePopover general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/SegmentedButton.spec.js b/packages/main/test/specs/SegmentedButton.spec.js index e012dbac8696..306aee346d0d 100644 --- a/packages/main/test/specs/SegmentedButton.spec.js +++ b/packages/main/test/specs/SegmentedButton.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("SegmentedButton general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Select.mobile.spec.js b/packages/main/test/specs/Select.mobile.spec.js index a5da2c762e9d..a0ad3ff017b6 100644 --- a/packages/main/test/specs/Select.mobile.spec.js +++ b/packages/main/test/specs/Select.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Select mobile general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Select.spec.js b/packages/main/test/specs/Select.spec.js index ac2c597a2ede..eedd610a83be 100644 --- a/packages/main/test/specs/Select.spec.js +++ b/packages/main/test/specs/Select.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; async function getResourceBundleTexts(keys) { return browser.executeAsync((keys, done) => { diff --git a/packages/main/test/specs/Slider.spec.js b/packages/main/test/specs/Slider.spec.js index 6f9a8919c95c..4f4168be196b 100644 --- a/packages/main/test/specs/Slider.spec.js +++ b/packages/main/test/specs/Slider.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Slider basic interactions", () => { diff --git a/packages/main/test/specs/SplitButton.spec.js b/packages/main/test/specs/SplitButton.spec.js index 40e1939f4d89..6b96e234f74f 100644 --- a/packages/main/test/specs/SplitButton.spec.js +++ b/packages/main/test/specs/SplitButton.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Split Button general interaction", () => { it("tests inner buttons design", async () => { diff --git a/packages/main/test/specs/StepInput.spec.js b/packages/main/test/specs/StepInput.spec.js index c7066f48b0da..936059676c4b 100644 --- a/packages/main/test/specs/StepInput.spec.js +++ b/packages/main/test/specs/StepInput.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Attributes propagation", () => { diff --git a/packages/main/test/specs/Switch.spec.js b/packages/main/test/specs/Switch.spec.js index eac0e7c697b9..741d5d14cb4d 100644 --- a/packages/main/test/specs/Switch.spec.js +++ b/packages/main/test/specs/Switch.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Switch general interaction", async () => { before(async () => { diff --git a/packages/main/test/specs/TabContainer.mobile.spec.js b/packages/main/test/specs/TabContainer.mobile.spec.js index e0a254db266b..61860f61404b 100644 --- a/packages/main/test/specs/TabContainer.mobile.spec.js +++ b/packages/main/test/specs/TabContainer.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Mobile: TabContainer general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/TabContainer.spec.js b/packages/main/test/specs/TabContainer.spec.js index 66746c1b19a3..77fa8cceeaf6 100644 --- a/packages/main/test/specs/TabContainer.spec.js +++ b/packages/main/test/specs/TabContainer.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("TabContainer general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Table.spec.js b/packages/main/test/specs/Table.spec.js index 6d1f50dc4b6e..f83eebeb4a97 100644 --- a/packages/main/test/specs/Table.spec.js +++ b/packages/main/test/specs/Table.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Table general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/TableGrouping.spec.js b/packages/main/test/specs/TableGrouping.spec.js index df8019401a10..8645f5cfb7a5 100644 --- a/packages/main/test/specs/TableGrouping.spec.js +++ b/packages/main/test/specs/TableGrouping.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Table general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/TextArea.spec.js b/packages/main/test/specs/TextArea.spec.js index 91e72d648c74..efe24d6d67fa 100644 --- a/packages/main/test/specs/TextArea.spec.js +++ b/packages/main/test/specs/TextArea.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Attributes propagation", () => { before(async () => { diff --git a/packages/main/test/specs/TimePicker.spec.js b/packages/main/test/specs/TimePicker.spec.js index e5b5c181e731..a2588f752ce5 100644 --- a/packages/main/test/specs/TimePicker.spec.js +++ b/packages/main/test/specs/TimePicker.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("TimePicker general interaction", () => { it("input receives value in format pattern depending on the set language", async () => { diff --git a/packages/main/test/specs/Title.spec.js b/packages/main/test/specs/Title.spec.js index 257d8c5afdc1..262feebf6941 100644 --- a/packages/main/test/specs/Title.spec.js +++ b/packages/main/test/specs/Title.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Rendering", () => { before(async () => { diff --git a/packages/main/test/specs/Toast.spec.js b/packages/main/test/specs/Toast.spec.js index 9ab1d80cdf08..ab32dae4e14c 100644 --- a/packages/main/test/specs/Toast.spec.js +++ b/packages/main/test/specs/Toast.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Toast general interaction", () => { diff --git a/packages/main/test/specs/ToggleButton.spec.js b/packages/main/test/specs/ToggleButton.spec.js index ff9c9499a0ca..fe1a193c55d5 100644 --- a/packages/main/test/specs/ToggleButton.spec.js +++ b/packages/main/test/specs/ToggleButton.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ToggleButton general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Tree.spec.js b/packages/main/test/specs/Tree.spec.js index 522151fb9e20..235b5d20e476 100644 --- a/packages/main/test/specs/Tree.spec.js +++ b/packages/main/test/specs/Tree.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; async function getItemsCount(selector) { const items = await getItems(selector); diff --git a/packages/main/test/specs/WheelSlider.spec.js b/packages/main/test/specs/WheelSlider.spec.js index 5aba818e521c..78ea1b022850 100644 --- a/packages/main/test/specs/WheelSlider.spec.js +++ b/packages/main/test/specs/WheelSlider.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Wheel Slider general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/base/AriaLabelHelper.spec.js b/packages/main/test/specs/base/AriaLabelHelper.spec.js index fadf75230e38..91bd3e759a81 100644 --- a/packages/main/test/specs/base/AriaLabelHelper.spec.js +++ b/packages/main/test/specs/base/AriaLabelHelper.spec.js @@ -1,4 +1,4 @@ -const assert = require('chai').assert; +import { assert } from "chai"; describe('AriaLabelHelper', () => { before(async () => { diff --git a/packages/main/test/specs/base/DOMObserver.spec.js b/packages/main/test/specs/base/DOMObserver.spec.js index 07f9ec61c4b7..5e8e22814473 100644 --- a/packages/main/test/specs/base/DOMObserver.spec.js +++ b/packages/main/test/specs/base/DOMObserver.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("DOMObserver", () => { before(async () => { diff --git a/packages/main/test/specs/base/InvisibleMessage.spec.js b/packages/main/test/specs/base/InvisibleMessage.spec.js index 22bf9aadf462..eb519e126707 100644 --- a/packages/main/test/specs/base/InvisibleMessage.spec.js +++ b/packages/main/test/specs/base/InvisibleMessage.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("InvisibleMessage", () => { before(async () => { diff --git a/packages/tools/components-package/nps.js b/packages/tools/components-package/nps.cjs similarity index 94% rename from packages/tools/components-package/nps.js rename to packages/tools/components-package/nps.cjs index 230a95cbb269..81f204c11dfe 100644 --- a/packages/tools/components-package/nps.js +++ b/packages/tools/components-package/nps.cjs @@ -21,15 +21,15 @@ const getScripts = (options) => { const copySrcGenerated = tsOption ? "" : "copy.srcGenerated"; let viteConfig; - if (fs.existsSync("config/vite.config.js")) { + if (fs.existsSync("config/vite.config.cjs")) { // old project setup where config file is in separate folder - viteConfig = "-c config/vite.config.js"; - } else if (fs.existsSync("vite.config.js")) { + viteConfig = "-c config/vite.config.cjs"; + } else if (fs.existsSync("vite.config.cjs")) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; + viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; } let eslintConfig; @@ -106,9 +106,9 @@ const getScripts = (options) => { i18n: 'chokidar "src/i18n/messagebundle.properties" -c "nps build.i18n.defaultsjs"' }, start: "nps prepare watch.devServer", - test: `node "${LIB}/test-runner/test-runner.js"`, - "test-suite-1": `node "${LIB}/test-runner/test-runner.js" --suite suite1`, - "test-suite-2": `node "${LIB}/test-runner/test-runner.js" --suite suite2`, + test: `node "${LIB}/test-runner/test-runner.cjs"`, + "test-suite-1": `node "${LIB}/test-runner/test-runner.cjs" --suite suite1`, + "test-suite-2": `node "${LIB}/test-runner/test-runner.cjs" --suite suite2`, startWithScope: "nps scope.prepare scope.watchWithBundle", scope: { prepare: "nps scope.lint prepare scope.testPages", diff --git a/packages/tools/components-package/postcss.components.js b/packages/tools/components-package/postcss.components.cjs similarity index 100% rename from packages/tools/components-package/postcss.components.js rename to packages/tools/components-package/postcss.components.cjs diff --git a/packages/tools/components-package/postcss.themes.js b/packages/tools/components-package/postcss.themes.cjs similarity index 100% rename from packages/tools/components-package/postcss.themes.js rename to packages/tools/components-package/postcss.themes.cjs diff --git a/packages/tools/components-package/vite.config.js b/packages/tools/components-package/vite.config.cjs similarity index 93% rename from packages/tools/components-package/vite.config.js rename to packages/tools/components-package/vite.config.cjs index 34b0d418c936..fae8d0825bef 100644 --- a/packages/tools/components-package/vite.config.js +++ b/packages/tools/components-package/vite.config.cjs @@ -1,6 +1,6 @@ // vite.config.js const { defineConfig } = require('vite'); -const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.js"); +const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.cjs"); module.exports = defineConfig(async () => { return { diff --git a/packages/tools/components-package/wdio.cjs b/packages/tools/components-package/wdio.cjs new file mode 100644 index 000000000000..f62ca04b3544 --- /dev/null +++ b/packages/tools/components-package/wdio.cjs @@ -0,0 +1,393 @@ +exports.config = { + // + // ==================== + // Runner Configuration + // ==================== + // + // WebdriverIO allows it to run your tests in arbitrary locations (e.g. locally or + // on a remote machine). + runner: 'local', + + // + // ================== + // Specify Test Files + // ================== + // Define which test specs should run. The pattern is relative to the directory + // from which `wdio` was called. Notice that, if you are calling `wdio` from an + // NPM script (see https://docs.npmjs.com/cli/run-script) then the current working + // directory is where your package.json resides, so `wdio` will be called from there. + // + specs: [ + './test/specs/**/*.js' + ], + // Patterns to exclude. + exclude: [ + // 'path/to/excluded/files' + ], + // + // ============ + // Capabilities + // ============ + // Define your capabilities here. WebdriverIO can run multiple capabilities at the same + // time. Depending on the number of capabilities, WebdriverIO launches several test + // sessions. Within your capabilities you can overwrite the spec and exclude options in + // order to group specific specs to a specific capability. + // + // First, you can define how many instances should be started at the same time. Let's + // say you have 3 different capabilities (Chrome, Firefox, and Safari) and you have + // set maxInstances to 1; wdio will spawn 3 processes. Therefore, if you have 10 spec + // files and you set maxInstances to 10, all spec files will get tested at the same time + // and 30 processes will get spawned. The property handles how many capabilities + // from the same test should run tests. + // + maxInstances: 10, + // + // If you have trouble getting all important capabilities together, check out the + // Sauce Labs platform configurator - a great tool to configure your capabilities: + // https://docs.saucelabs.com/reference/platforms-configurator + // + capabilities: [{ + // maxInstances can get overwritten per capability. So if you have an in-house Selenium + // grid with only 5 firefox instances available you can make sure that not more than + // 5 instances get started at a time. + maxInstances: 5, + // + browserName: 'chrome', + 'goog:chromeOptions': { + // to run chrome headless the following flags are required + // (see https://developers.google.com/web/updates/2017/04/headless-chrome) + args: ['--headless', '--disable-gpu'], + // args: ['--disable-gpu'], + } + }], + // + // port to find chromedriver + port: 9515, // default + // =================== + // Test Configurations + // =================== + // Define all options that are relevant for the WebdriverIO instance here + // + // Level of logging verbosity: trace | debug | info | warn | error + logLevel: 'error', + // + // Warns when a deprecated command is used + deprecationWarnings: true, + // + // If you only want to run your tests until a specific amount of tests have failed use + // bail (default is 0 - don't bail, run all tests). + bail: 0, + // + // Set a base URL in order to shorten url command calls. If your `url` parameter starts + // with `/`, the base url gets prepended, not including the path portion of your baseUrl. + // If your `url` parameter starts without a scheme or `/` (like `some/path`), the base url + // gets prepended directly. + baseUrl: 'http://localhost:4567', // This is important since WDIO 7+ does not accept an empty string for baseUrl + path: '', + // + // Default timeout for all waitFor* commands. + waitforTimeout: 10000, + // + // Default timeout in milliseconds for request + // if Selenium Grid doesn't send response + connectionRetryTimeout: 90000, + // + // Default request retries count + connectionRetryCount: 3, + // + // Test runner services + // Services take over a specific job you don't want to take care of. They enhance + // your test setup with almost no effort. Unlike plugins, they don't add new + // commands. Instead, they hook themselves up into the test process. + services: ['chromedriver', 'devtools', + ['static-server', { + folders: [ + { mount: '/', path: './dist' }, + ], + port: '4567', + }], + ], + // options + chromeDriverArgs: ['--port=9515'], // default + // Framework you want to run your specs with. + // The following are supported: Mocha, Jasmine, and Cucumber + // see also: https://webdriver.io/docs/frameworks.html + // + // Make sure you have the wdio adapter package for the specific framework installed + // before running any tests. + framework: 'mocha', + // + // Test reporter for stdout. + // The only one supported by default is 'dot' + // see also: https://webdriver.io/docs/dot-reporter.html + reporters: ['dot', 'spec'], + + // + // Options to be passed to Mocha. + // See the full list at http://mochajs.org/ + mochaOpts: { + ui: 'bdd', + timeout: 60000 + }, + // + // ===== + // Hooks + // ===== + // WebdriverIO provides several hooks you can use to interfere with the test process in order to enhance + // it and to build services around it. You can either apply a single function or an array of + // methods to it. If one of them returns with a promise, WebdriverIO will wait until that promise got + // resolved to continue. + /** + * Gets executed once before all workers get launched. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + */ + // onPrepare: function (config, capabilities) { + // }, + /** + * Gets executed just before initialising the webdriver session and test framework. It allows you + * to manipulate configurations depending on the capability or spec. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + */ + // beforeSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed before test execution begins. At this point you can access to all global + * variables like `browser`. It is the perfect place to define custom commands. + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + */ + before: async function (capabilities, specs) { + await browser.addCommand("isFocusedDeep", async function () { + return browser.executeAsync(function (elem, done) { + let activeElement = document.activeElement; + + while (activeElement.shadowRoot) { + if (activeElement.shadowRoot.activeElement) { + activeElement = activeElement.shadowRoot.activeElement; + } else { + break; + } + } + done(elem === activeElement); + }, this); + }, true); + + await browser.addCommand("isFocusedDeepElement", async function (element) { + return browser.executeAsync(function (elem, element, done) { + let activeElement = document.activeElement; + + while (activeElement.shadowRoot) { + if (activeElement.shadowRoot.activeElement) { + activeElement = activeElement.shadowRoot.activeElement; + } else { + break; + } + } + done(element === activeElement); + }, this, element); + }, true); + + await browser.addCommand("setProperty", async function(property, value) { + return browser.executeAsync((elem, property, value, done) => { + elem[property] = value; + done(); + }, this, property, value); + }, true); + + await browser.addCommand("setAttribute", async function(attribute, value) { + return browser.executeAsync((elem, attribute, value, done) => { + elem.setAttribute(attribute, value); + done(); + }, this, attribute, value); + }, true); + + await browser.addCommand("removeAttribute", async function(attribute) { + return browser.executeAsync((elem, attribute, done) => { + elem.removeAttribute(attribute); + done(); + }, this, attribute); + }, true); + + await browser.addCommand("hasClass", async function(className) { + return browser.executeAsync((elem, className, done) => { + done(elem.classList.contains(className)); + }, this, className); + }, true); + + await browser.addCommand("hasAttribute", async function(attrName) { + return browser.executeAsync((elem, attrName, done) => { + done(elem.hasAttribute(attrName)); + }, this, attrName); + }, true); + + await browser.addCommand("getStaticAreaItemClassName", async function(selector) { + return browser.executeAsync(async (selector, done) => { + const staticAreaItem = await document.querySelector(selector).getStaticAreaItemDomRef(); + done(staticAreaItem.host.classList[0]); + }, selector); + }, false); + + await browser.addLocatorStrategy('activeElement', (selector) => { + return document.querySelector(selector).shadowRoot.activeElement; + }); + }, + /** + * Runs before a WebdriverIO command gets executed. + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + */ + beforeCommand: async function (commandName, args) { + const waitFor = [ + "$", + "$$", + "getAttribute", + "hasAttribute", // custom + "getCSSProperty", + "getHTML", + "getProperty", + "getSize", + "getStaticAreaItemClassName", // custom + "getText", + "getValue", + "hasClass", // custom + "isDisplayed", + "isDisplayedInViewport", + "isEnabled", + "isExisting", + "isFocused", + "isFocusedDeep", // custom + "isFocusedDeepElement", // custom + "shadow$", + "shadow$$", + ]; + if (waitFor.includes(commandName)) { + await browser.executeAsync(function (done) { + window["sap-ui-webcomponents-bundle"].renderFinished().then(done); + }); + } + }, + + /** + * Hook that gets executed before the suite starts + * @param {Object} suite suite details + */ + // beforeSuite: function (suite) { + // }, + /** + * Function to be executed before a test (in Mocha/Jasmine) or a step (in Cucumber) starts. + * @param {Object} test test details + */ + // beforeTest: function (test) { + // }, + /** + * Hook that gets executed _before_ a hook within the suite starts (e.g. runs before calling + * beforeEach in Mocha) + */ + // beforeHook: function () { + // }, + /** + * Hook that gets executed _after_ a hook within the suite starts (e.g. runs after calling + * afterEach in Mocha) + */ + // afterHook: function () { + // }, + /** + * Function to be executed after a test (in Mocha/Jasmine) or a step (in Cucumber) starts. + * @param {Object} test test details + */ + // afterTest: function (test) { + // }, + /** + * Hook that gets executed after the suite has ended + * @param {Object} suite suite details + */ + // afterSuite: function (suite) { + // }, + + /** + * Runs after a WebdriverIO command gets executed + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + * @param {Number} result 0 - command success, 1 - command error + * @param {Object} error error object if any + */ + afterCommand: async function (commandName, args, result, error) { + + // url -> set configuration first + if (commandName === "url" && !args[0].includes("do-not-change-configuration")) { + await browser.executeAsync(function(done) { + window["sap-ui-webcomponents-bundle"].configuration.setNoConflict(true); + done(); + }); + } + + const waitFor = [ + "addValue", + "clearValue", + "click", + "doubleClick", + "dragAndDrop", + "pause", + "removeAttribute", // custom + "scrollIntoView", + "setAttribute", // custom + "setProperty", // custom + "setValue", + "setWindowSize", + "touchAction", + "url", + ]; + + const waitForWithDelay = [ + "keys", + ]; + + if (waitFor.includes(commandName)) { + await browser.executeAsync(function (done) { + window["sap-ui-webcomponents-bundle"].renderFinished().then(done); + }); + } else if (waitForWithDelay.includes(commandName)) { + await browser.executeAsync(function (done) { + setTimeout(() => { + window["sap-ui-webcomponents-bundle"].renderFinished().then(done); + }, 10); + }); + } + }, + /** + * Gets executed after all tests are done. You still have access to all global variables from + * the test. + * @param {Number} result 0 - test pass, 1 - test fail + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // after: function (result, capabilities, specs) { + // }, + /** + * Gets executed right after terminating the webdriver session. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // afterSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed after all workers got shut down and the process is about to exit. + * @param {Object} exitCode 0 - success, 1 - fail + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {} results object containing test results + */ + // onComplete: function(exitCode, config, capabilities, results) { + // }, + /** + * Gets executed when a refresh happens. + * @param {String} oldSessionId session ID of the old session + * @param {String} newSessionId session ID of the new session + */ + //onReload: function(oldSessionId, newSessionId) { + //} +} \ No newline at end of file diff --git a/packages/tools/lib/dev-server/virtual-index-html-plugin.js b/packages/tools/lib/dev-server/virtual-index-html-plugin.cjs similarity index 100% rename from packages/tools/lib/dev-server/virtual-index-html-plugin.js rename to packages/tools/lib/dev-server/virtual-index-html-plugin.cjs diff --git a/packages/tools/lib/test-runner/test-runner.js b/packages/tools/lib/test-runner/test-runner.cjs similarity index 97% rename from packages/tools/lib/test-runner/test-runner.js rename to packages/tools/lib/test-runner/test-runner.cjs index 5252c1b5deaa..c6d54a70d63c 100644 --- a/packages/tools/lib/test-runner/test-runner.js +++ b/packages/tools/lib/test-runner/test-runner.cjs @@ -58,6 +58,6 @@ if (process.argv.length > 3) { } // run wdio with calculated parameters -const cmd = `yarn cross-env WDIO_LOG_LEVEL=error wdio config/wdio.conf.js ${spec} ${baseUrl} ${restParams}`; +const cmd = `yarn cross-env WDIO_LOG_LEVEL=error wdio config/wdio.conf.cjs ${spec} ${baseUrl} ${restParams}`; console.log(`executing: ${cmd}`); child_process.execSync(cmd, {stdio: 'inherit'}); From 2d50fb8e6f6232fc47a189c1d77f17f3be094e76 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 1 Mar 2023 17:07:49 +0200 Subject: [PATCH 02/42] chore: add fiori package --- packages/fiori/.npsrc.json | 3 +++ .../{postcss.config.js => postcss.config.cjs} | 2 +- .../postcss.themes/{postcss.config.js => postcss.config.cjs} | 2 +- packages/fiori/config/{wdio.conf.js => wdio.conf.cjs} | 2 +- packages/fiori/{package-scripts.js => package-scripts.cjs} | 0 packages/fiori/package.json | 1 + packages/fiori/test/specs/BarcodeScannerDialog.spec.js | 2 +- packages/fiori/test/specs/Components.spec.js | 2 +- packages/fiori/test/specs/DynamicSideContent.spec.js | 2 +- packages/fiori/test/specs/F6Handling.spec.js | 2 +- packages/fiori/test/specs/FCL.spec.js | 2 +- packages/fiori/test/specs/IllustratedMessage.spec.js | 2 +- packages/fiori/test/specs/MediaGallery.spec.js | 2 +- packages/fiori/test/specs/NotificationList.spec.js | 2 +- packages/fiori/test/specs/Page.spec.js | 2 +- packages/fiori/test/specs/ProductSwitch.spec.js | 2 +- packages/fiori/test/specs/ProductSwitchItem.spec.js | 2 +- packages/fiori/test/specs/ShellBar.spec.js | 2 +- packages/fiori/test/specs/SideNavigation.spec.js | 2 +- packages/fiori/test/specs/Timeline.spec.js | 2 +- packages/fiori/test/specs/UploadCollection.spec.js | 2 +- packages/fiori/test/specs/ViewSettingsDialog.spec.js | 2 +- packages/fiori/test/specs/Wizard.spec.js | 2 +- 23 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 packages/fiori/.npsrc.json rename packages/fiori/config/postcss.components/{postcss.config.js => postcss.config.cjs} (66%) rename packages/fiori/config/postcss.themes/{postcss.config.js => postcss.config.cjs} (69%) rename packages/fiori/config/{wdio.conf.js => wdio.conf.cjs} (78%) rename packages/fiori/{package-scripts.js => package-scripts.cjs} (100%) diff --git a/packages/fiori/.npsrc.json b/packages/fiori/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/fiori/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/fiori/config/postcss.components/postcss.config.js b/packages/fiori/config/postcss.components/postcss.config.cjs similarity index 66% rename from packages/fiori/config/postcss.components/postcss.config.js rename to packages/fiori/config/postcss.components/postcss.config.cjs index b496f7835c1a..9ccf01441c54 100644 --- a/packages/fiori/config/postcss.components/postcss.config.js +++ b/packages/fiori/config/postcss.components/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.cjs"); diff --git a/packages/fiori/config/postcss.themes/postcss.config.js b/packages/fiori/config/postcss.themes/postcss.config.cjs similarity index 69% rename from packages/fiori/config/postcss.themes/postcss.config.js rename to packages/fiori/config/postcss.themes/postcss.config.cjs index f7b0dfe5e3e8..88f256aedb71 100644 --- a/packages/fiori/config/postcss.themes/postcss.config.js +++ b/packages/fiori/config/postcss.themes/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.cjs"); diff --git a/packages/fiori/config/wdio.conf.js b/packages/fiori/config/wdio.conf.cjs similarity index 78% rename from packages/fiori/config/wdio.conf.js rename to packages/fiori/config/wdio.conf.cjs index ec46d09522f7..f870909c1ef4 100644 --- a/packages/fiori/config/wdio.conf.js +++ b/packages/fiori/config/wdio.conf.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/wdio.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/wdio.cjs"); diff --git a/packages/fiori/package-scripts.js b/packages/fiori/package-scripts.cjs similarity index 100% rename from packages/fiori/package-scripts.js rename to packages/fiori/package-scripts.cjs diff --git a/packages/fiori/package.json b/packages/fiori/package.json index 850a2440b9ff..e40822787bc1 100644 --- a/packages/fiori/package.json +++ b/packages/fiori/package.json @@ -5,6 +5,7 @@ "ui5": { "webComponentsPackage": true }, + "type": "module", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", "private": false, diff --git a/packages/fiori/test/specs/BarcodeScannerDialog.spec.js b/packages/fiori/test/specs/BarcodeScannerDialog.spec.js index ec99484da9a4..c24a19db7c75 100644 --- a/packages/fiori/test/specs/BarcodeScannerDialog.spec.js +++ b/packages/fiori/test/specs/BarcodeScannerDialog.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("BarcodeScannerDialog Behavior", () => { before(async () => { diff --git a/packages/fiori/test/specs/Components.spec.js b/packages/fiori/test/specs/Components.spec.js index acee6d6cb981..58d2bfc0b759 100644 --- a/packages/fiori/test/specs/Components.spec.js +++ b/packages/fiori/test/specs/Components.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const assertBooleanProperty = async (el, prop) => { assert.strictEqual(await el.getProperty(prop), false, "the value should be false by default."); diff --git a/packages/fiori/test/specs/DynamicSideContent.spec.js b/packages/fiori/test/specs/DynamicSideContent.spec.js index a9845e8d34e2..b44d9c78a019 100644 --- a/packages/fiori/test/specs/DynamicSideContent.spec.js +++ b/packages/fiori/test/specs/DynamicSideContent.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("'sideContentPosition' property: ", () => { it("set to 'End'", async () => { diff --git a/packages/fiori/test/specs/F6Handling.spec.js b/packages/fiori/test/specs/F6Handling.spec.js index 253566f9a884..bfff3fc6d751 100644 --- a/packages/fiori/test/specs/F6Handling.spec.js +++ b/packages/fiori/test/specs/F6Handling.spec.js @@ -1,4 +1,4 @@ -// const assert = require("chai").assert; +// import { assert } from "chai"; // // describe("Button general interaction", () => { diff --git a/packages/fiori/test/specs/FCL.spec.js b/packages/fiori/test/specs/FCL.spec.js index 3964e79e0827..3cf5f2ea63f3 100644 --- a/packages/fiori/test/specs/FCL.spec.js +++ b/packages/fiori/test/specs/FCL.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("FlexibleColumnLayout Behavior", () => { diff --git a/packages/fiori/test/specs/IllustratedMessage.spec.js b/packages/fiori/test/specs/IllustratedMessage.spec.js index dc60ea1759ba..518ea125ac1c 100644 --- a/packages/fiori/test/specs/IllustratedMessage.spec.js +++ b/packages/fiori/test/specs/IllustratedMessage.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("IllustratedMessage 'size' property", () => { before(async () => { diff --git a/packages/fiori/test/specs/MediaGallery.spec.js b/packages/fiori/test/specs/MediaGallery.spec.js index 4701cfa036b1..e79cc2dd18b5 100644 --- a/packages/fiori/test/specs/MediaGallery.spec.js +++ b/packages/fiori/test/specs/MediaGallery.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("MediaGallery general interaction", () => { diff --git a/packages/fiori/test/specs/NotificationList.spec.js b/packages/fiori/test/specs/NotificationList.spec.js index 6156965d72dd..51f86e279558 100644 --- a/packages/fiori/test/specs/NotificationList.spec.js +++ b/packages/fiori/test/specs/NotificationList.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Notification List Item Tests", () => { before(async () => { diff --git a/packages/fiori/test/specs/Page.spec.js b/packages/fiori/test/specs/Page.spec.js index 71c76d768b1d..4ef7a2158588 100644 --- a/packages/fiori/test/specs/Page.spec.js +++ b/packages/fiori/test/specs/Page.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Page general interaction", () => { before(async () => { diff --git a/packages/fiori/test/specs/ProductSwitch.spec.js b/packages/fiori/test/specs/ProductSwitch.spec.js index 5b9f747be4a5..f2a44dc1e90b 100644 --- a/packages/fiori/test/specs/ProductSwitch.spec.js +++ b/packages/fiori/test/specs/ProductSwitch.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ProductSwitch general interaction", async () => { before(async () => { diff --git a/packages/fiori/test/specs/ProductSwitchItem.spec.js b/packages/fiori/test/specs/ProductSwitchItem.spec.js index a947377794a4..9ef32ed34eab 100644 --- a/packages/fiori/test/specs/ProductSwitchItem.spec.js +++ b/packages/fiori/test/specs/ProductSwitchItem.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ProductSwitchItem general interaction", async () => { before(async () => { diff --git a/packages/fiori/test/specs/ShellBar.spec.js b/packages/fiori/test/specs/ShellBar.spec.js index 94744abdae94..202eca8c857c 100644 --- a/packages/fiori/test/specs/ShellBar.spec.js +++ b/packages/fiori/test/specs/ShellBar.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; HANDLE_RESIZE_DEBOUNCE_RATE_WAIT = 250; // ms const getOverflowPopover = async id => { diff --git a/packages/fiori/test/specs/SideNavigation.spec.js b/packages/fiori/test/specs/SideNavigation.spec.js index 5b8bed7fa5fd..5026e1394e3b 100644 --- a/packages/fiori/test/specs/SideNavigation.spec.js +++ b/packages/fiori/test/specs/SideNavigation.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; async function getTreeItemsInPopover() { const staticAreaItemClassName = await browser.getStaticAreaItemClassName("#sn1"); diff --git a/packages/fiori/test/specs/Timeline.spec.js b/packages/fiori/test/specs/Timeline.spec.js index 887673871a91..b3c868c7a683 100644 --- a/packages/fiori/test/specs/Timeline.spec.js +++ b/packages/fiori/test/specs/Timeline.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Timeline general interaction", () => { before(async () => { diff --git a/packages/fiori/test/specs/UploadCollection.spec.js b/packages/fiori/test/specs/UploadCollection.spec.js index 38132fd86e60..45f89cd4474e 100644 --- a/packages/fiori/test/specs/UploadCollection.spec.js +++ b/packages/fiori/test/specs/UploadCollection.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("UploadCollection", () => { describe("Rendering", () => { diff --git a/packages/fiori/test/specs/ViewSettingsDialog.spec.js b/packages/fiori/test/specs/ViewSettingsDialog.spec.js index a6b331458d10..623b3e04eba8 100644 --- a/packages/fiori/test/specs/ViewSettingsDialog.spec.js +++ b/packages/fiori/test/specs/ViewSettingsDialog.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ViewSettingsDialog general interaction", () => { before(async () => { diff --git a/packages/fiori/test/specs/Wizard.spec.js b/packages/fiori/test/specs/Wizard.spec.js index e10269398bc2..0a24d5045467 100644 --- a/packages/fiori/test/specs/Wizard.spec.js +++ b/packages/fiori/test/specs/Wizard.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Wizard general interaction", () => { before(async () => { From adede7bf21d6ee910c1d322165e0348a0589efd9 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 1 Mar 2023 17:41:41 +0200 Subject: [PATCH 03/42] chore: sidenavigation tests --- packages/fiori/test/specs/SideNavigation.spec.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/fiori/test/specs/SideNavigation.spec.js b/packages/fiori/test/specs/SideNavigation.spec.js index 5026e1394e3b..8ca3ac966179 100644 --- a/packages/fiori/test/specs/SideNavigation.spec.js +++ b/packages/fiori/test/specs/SideNavigation.spec.js @@ -191,14 +191,14 @@ describe("Component Behavior", () => { assert.strictEqual(await sideNavigationRoot.getAttribute("role"), "navigation", "Role of the SideNavigation root element is correctly set"); - roleDescription = await browser.executeAsync(done => { + let roleDescription = await browser.executeAsync(done => { const sn = document.getElementById("sn1"); done(sn.constructor.i18nBundle.getText(window["sap-ui-webcomponents-bundle"].defaultTexts.SIDE_NAVIGATION_LIST_ARIA_ROLE_DESC)); }); assert.strictEqual(await sideNavigationTree.getAttribute("aria-roledescription"), roleDescription, "Role description of the SideNavigation tree element is correctly set"); // items - roleDescriptionItem = await browser.executeAsync(done => { + let roleDescriptionItem = await browser.executeAsync(done => { const sn = document.getElementById("sn1"); done(sn.constructor.i18nBundle.getText(window["sap-ui-webcomponents-bundle"].defaultTexts.SIDE_NAVIGATION_LIST_ITEMS_ARIA_ROLE_DESC)); }); @@ -230,14 +230,14 @@ describe("Component Behavior", () => { assert.strictEqual(await sideNavigationRoot.getAttribute("role"), "navigation", "Role of the SideNavigation root element is correctly set"); - roleDescription = await browser.executeAsync(done => { + let roleDescription = await browser.executeAsync(done => { const sn = document.getElementById("sn1"); done(sn.constructor.i18nBundle.getText(window["sap-ui-webcomponents-bundle"].defaultTexts.SIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC)); }); assert.strictEqual(await sideNavigationTree.getAttribute("aria-roledescription"), roleDescription, "Role description of the SideNavigation tree element is correctly set"); // items - roleDescriptionItem = await browser.executeAsync(done => { + let roleDescriptionItem = await browser.executeAsync(done => { const sn = document.getElementById("sn1"); done(sn.constructor.i18nBundle.getText(window["sap-ui-webcomponents-bundle"].defaultTexts.SIDE_NAVIGATION_COLLAPSED_LIST_ITEMS_ARIA_ROLE_DESC)); }); From a515588fdc3c455504d9b0262505b687c74713ce Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 09:58:50 +0200 Subject: [PATCH 04/42] chore: shellbar tests --- packages/fiori/test/specs/ShellBar.spec.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/fiori/test/specs/ShellBar.spec.js b/packages/fiori/test/specs/ShellBar.spec.js index 202eca8c857c..1cc2d5aad3ee 100644 --- a/packages/fiori/test/specs/ShellBar.spec.js +++ b/packages/fiori/test/specs/ShellBar.spec.js @@ -1,5 +1,5 @@ import { assert } from "chai"; -HANDLE_RESIZE_DEBOUNCE_RATE_WAIT = 250; // ms +const HANDLE_RESIZE_DEBOUNCE_RATE_WAIT = 250; // ms const getOverflowPopover = async id => { const staticAreaItemClassName = await browser.getStaticAreaItemClassName(`#${id}`); @@ -8,18 +8,16 @@ const getOverflowPopover = async id => { const getOverflowChildProp = async (id, pos, prop) => { const popover = await getOverflowPopover(id); + const items = await popover.$$("ui5-li"); - return browser.executeAsync((popover, pos, prop, done) => { - done([...popover.querySelectorAll("ui5-li")][pos].getAttribute(prop)); - }, popover, pos, prop); + return [...items][pos].getAttribute(prop); } const getCustomActionProp = async (id, pos, prop) => { const shellbar = await browser.$(`#${id}`); + const items = await shellbar.shadowRoot.querySelectorAll(".ui5-shellbar-custom-item"); - return browser.executeAsync((shellbar, pos, prop, done) => { - done([...shellbar.shadowRoot.querySelectorAll(".ui5-shellbar-custom-item")][pos].getAttribute(prop)); - }, shellbar, pos, prop); + return [...items][pos].getAttribute(prop); } describe("Component Behavior", () => { @@ -54,7 +52,7 @@ describe("Component Behavior", () => { const logoDOM = await sb.shadow$(".ui5-shellbar-logo"); - // assert + // assertHANDLE_RESIZE_DEBOUNCE_RATE_WAIT assert.strictEqual(await logoDOM.getAttribute("role"), "link", "Logo has the correct custom role."); }); From b6f25242a10615cca01028a32384fc7313eb027c Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 12:09:49 +0200 Subject: [PATCH 05/42] chore: main tests --- packages/main/test/specs/Breadcrumbs.spec.js | 2 +- packages/main/test/specs/Input.spec.js | 4 ++-- packages/main/test/specs/List.spec.js | 2 +- packages/main/test/specs/MultiInput.spec.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/main/test/specs/Breadcrumbs.spec.js b/packages/main/test/specs/Breadcrumbs.spec.js index 0c3612443b39..680227a8f0f6 100644 --- a/packages/main/test/specs/Breadcrumbs.spec.js +++ b/packages/main/test/specs/Breadcrumbs.spec.js @@ -302,7 +302,7 @@ describe("Breadcrumbs general interaction", () => { await link.click(); await browser.releaseActions(); // Check - eventResult = await browser.$("#result"); + let eventResult = await browser.$("#result"); assert.strictEqual(await eventResult.getText(), 'META:' + await link.getText(), "label for pressed link is correct"); // Setup for ALT Key diff --git a/packages/main/test/specs/Input.spec.js b/packages/main/test/specs/Input.spec.js index 951fb72135f9..ee8f5ec39760 100644 --- a/packages/main/test/specs/Input.spec.js +++ b/packages/main/test/specs/Input.spec.js @@ -499,7 +499,7 @@ describe("Input general interaction", () => { const firstSuggestion = await respPopover.$("ui5-list").$("ui5-li-suggestion-item"); await firstSuggestion.click(); - valueNotSelected = await browser.execute(() =>{ + const valueNotSelected = await browser.execute(() =>{ const input = document.getElementById("myInput").shadowRoot.querySelector("input"); return input.selectionEnd - input.selectionStart === 0; }); @@ -528,7 +528,7 @@ describe("Input general interaction", () => { const secondSuggestion = await respPopover.$("ui5-list").$$("ui5-li-suggestion-item")[1]; await secondSuggestion.click(); - valueNotSelected = await browser.execute(() =>{ + const valueNotSelected = await browser.execute(() =>{ const input = document.getElementById("myInput").shadowRoot.querySelector("input"); return input.selectionEnd - input.selectionStart === 0; }); diff --git a/packages/main/test/specs/List.spec.js b/packages/main/test/specs/List.spec.js index 3c0e1d894fa8..b01abb260530 100644 --- a/packages/main/test/specs/List.spec.js +++ b/packages/main/test/specs/List.spec.js @@ -1,4 +1,4 @@ -import list from "../pageobjects/ListTestPage"; +import list from "../pageobjects/ListTestPage.js"; import { assert } from "chai"; /** diff --git a/packages/main/test/specs/MultiInput.spec.js b/packages/main/test/specs/MultiInput.spec.js index fe81d993267c..b47af57fee0c 100644 --- a/packages/main/test/specs/MultiInput.spec.js +++ b/packages/main/test/specs/MultiInput.spec.js @@ -178,7 +178,7 @@ describe("MultiInput general interaction", () => { await browser.keys("Backspace"); await browser.keys("Backspace"); await browser.keys("Delete"); - tokens = await input.$$("ui5-token"); + const tokens = await input.$$("ui5-token"); // Assert assert.strictEqual(tokens.length, 4, "The tokenizer has 4 tokens"); From d9b8d68c75077c564fc65f8d28855bf3225e73ec Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 12:40:30 +0200 Subject: [PATCH 06/42] chore: main tests --- packages/main/test/specs/DatePicker.spec.js | 2 +- packages/main/test/specs/DayPicker.spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/main/test/specs/DatePicker.spec.js b/packages/main/test/specs/DatePicker.spec.js index ca7367fe5a4c..7ea759036642 100644 --- a/packages/main/test/specs/DatePicker.spec.js +++ b/packages/main/test/specs/DatePicker.spec.js @@ -1,4 +1,4 @@ -import datepicker from "../pageobjects/DatePickerTestPage"; +import datepicker from "../pageobjects/DatePickerTestPage.js"; import { assert } from "chai"; describe("Date Picker Tests", () => { diff --git a/packages/main/test/specs/DayPicker.spec.js b/packages/main/test/specs/DayPicker.spec.js index ae34288835c7..d77e7513826f 100644 --- a/packages/main/test/specs/DayPicker.spec.js +++ b/packages/main/test/specs/DayPicker.spec.js @@ -1,4 +1,4 @@ -import daypicker from "../pageobjects/DayPickerTestPage"; +import daypicker from "../pageobjects/DayPickerTestPage.js"; import { assert } from "chai"; describe("Day Picker Tests", () => { From 565d7064655cb92a4caa8e9f0d8edf2ed441d7ef Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 14:42:44 +0200 Subject: [PATCH 07/42] chore: add icons/localization/theming --- packages/icons-business-suite/.npsrc.json | 3 +++ .../{package-scripts.js => package-scripts.cjs} | 2 +- packages/icons-business-suite/package.json | 1 + packages/icons-tnt/.npsrc.json | 3 +++ .../icons-tnt/{package-scripts.js => package-scripts.cjs} | 2 +- packages/icons-tnt/package.json | 1 + packages/icons/.npsrc.json | 3 +++ .../icons/{package-scripts.js => package-scripts.cjs} | 2 +- packages/icons/package.json | 1 + packages/localization/.npsrc.json | 3 +++ .../localization/config/{.eslintrc.js => .eslintrc.cjs} | 0 packages/localization/lib/generate-json-imports/cldr.js | 4 ++-- .../{package-scripts.js => package-scripts.cjs} | 2 +- packages/localization/package.json | 1 + packages/theming/.npsrc.json | 3 +++ .../{postcss.config.js => postcss.config.cjs} | 0 .../theming/lib/generate-css-vars-usage-report/index.js | 8 +++++--- .../theming/{package-scripts.js => package-scripts.cjs} | 0 packages/theming/package.json | 1 + packages/tools/icons-collection/{nps.js => nps.cjs} | 0 20 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 packages/icons-business-suite/.npsrc.json rename packages/icons-business-suite/{package-scripts.js => package-scripts.cjs} (95%) create mode 100644 packages/icons-tnt/.npsrc.json rename packages/icons-tnt/{package-scripts.js => package-scripts.cjs} (94%) create mode 100644 packages/icons/.npsrc.json rename packages/icons/{package-scripts.js => package-scripts.cjs} (93%) create mode 100644 packages/localization/.npsrc.json rename packages/localization/config/{.eslintrc.js => .eslintrc.cjs} (100%) rename packages/localization/{package-scripts.js => package-scripts.cjs} (97%) create mode 100644 packages/theming/.npsrc.json rename packages/theming/config/postcss.themes/{postcss.config.js => postcss.config.cjs} (100%) rename packages/theming/{package-scripts.js => package-scripts.cjs} (100%) rename packages/tools/icons-collection/{nps.js => nps.cjs} (100%) diff --git a/packages/icons-business-suite/.npsrc.json b/packages/icons-business-suite/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/icons-business-suite/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/icons-business-suite/package-scripts.js b/packages/icons-business-suite/package-scripts.cjs similarity index 95% rename from packages/icons-business-suite/package-scripts.js rename to packages/icons-business-suite/package-scripts.cjs index 4e495d819594..6030cebbe219 100644 --- a/packages/icons-business-suite/package-scripts.js +++ b/packages/icons-business-suite/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); const options = { collectionName: "SAP-icons-business-suite", diff --git a/packages/icons-business-suite/package.json b/packages/icons-business-suite/package.json index db45f31b2e4a..c3c0c8328316 100644 --- a/packages/icons-business-suite/package.json +++ b/packages/icons-business-suite/package.json @@ -4,6 +4,7 @@ "description": "UI5 Web Components: SAP Fiori Tools icon set", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", + "type": "module", "private": false, "keywords": [ "openui5", diff --git a/packages/icons-tnt/.npsrc.json b/packages/icons-tnt/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/icons-tnt/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/icons-tnt/package-scripts.js b/packages/icons-tnt/package-scripts.cjs similarity index 94% rename from packages/icons-tnt/package-scripts.js rename to packages/icons-tnt/package-scripts.cjs index 3265fe342ea1..3727dc930935 100644 --- a/packages/icons-tnt/package-scripts.js +++ b/packages/icons-tnt/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); const options = { collectionName: "SAP-icons-TNT", diff --git a/packages/icons-tnt/package.json b/packages/icons-tnt/package.json index 4dfdc02da42d..52955007251d 100644 --- a/packages/icons-tnt/package.json +++ b/packages/icons-tnt/package.json @@ -4,6 +4,7 @@ "description": "UI5 Web Components: SAP Fiori Tools icon set", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", + "type": "module", "private": false, "keywords": [ "openui5", diff --git a/packages/icons/.npsrc.json b/packages/icons/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/icons/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/icons/package-scripts.js b/packages/icons/package-scripts.cjs similarity index 93% rename from packages/icons/package-scripts.js rename to packages/icons/package-scripts.cjs index 954a6c01b00b..93473f61ce92 100644 --- a/packages/icons/package-scripts.js +++ b/packages/icons/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); const options = { collectionName: "SAP-icons", diff --git a/packages/icons/package.json b/packages/icons/package.json index 432daf3a1680..3bddfb001ffc 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -5,6 +5,7 @@ "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", "private": false, + "type": "module", "keywords": [ "openui5", "sapui5", diff --git a/packages/localization/.npsrc.json b/packages/localization/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/localization/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/localization/config/.eslintrc.js b/packages/localization/config/.eslintrc.cjs similarity index 100% rename from packages/localization/config/.eslintrc.js rename to packages/localization/config/.eslintrc.cjs diff --git a/packages/localization/lib/generate-json-imports/cldr.js b/packages/localization/lib/generate-json-imports/cldr.js index 2dd5afe50a74..d5b50d26ce80 100644 --- a/packages/localization/lib/generate-json-imports/cldr.js +++ b/packages/localization/lib/generate-json-imports/cldr.js @@ -1,5 +1,5 @@ -const fs = require("fs").promises; -const assets = require("@ui5/webcomponents-tools/assets-meta.js"); +import fs from "fs/promises"; +import assets from "@ui5/webcomponents-tools/assets-meta.js"; const allLocales = assets.locales.all; diff --git a/packages/localization/package-scripts.js b/packages/localization/package-scripts.cjs similarity index 97% rename from packages/localization/package-scripts.js rename to packages/localization/package-scripts.cjs index 2300987fa828..61dec447a4eb 100644 --- a/packages/localization/package-scripts.js +++ b/packages/localization/package-scripts.cjs @@ -5,7 +5,7 @@ const esmAbsToRel = resolve.sync("@ui5/webcomponents-tools/lib/esm-abs-to-rel/in const scripts = { clean: "rimraf dist", - lint: "eslint . --config config/.eslintrc.js", + lint: "eslint . --config config/.eslintrc.cjs", build: { "default": "nps lint clean copy.used-modules copy.cldr copy.overlay build.replace-amd build.replace-export-true build.replace-export-false build.amd-to-es6 build.replace-global-core-usage build.esm-abs-to-rel build.jsonImports build.typescript copy.src", "replace-amd": "replace-in-file sap.ui.define define dist/**/*.js", diff --git a/packages/localization/package.json b/packages/localization/package.json index 8359c6dc3c2e..2e2f9e0277f1 100644 --- a/packages/localization/package.json +++ b/packages/localization/package.json @@ -4,6 +4,7 @@ "description": "Localization for UI5 Web Components", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", + "type": "module", "keywords": [ "openui5", "sapui5", diff --git a/packages/theming/.npsrc.json b/packages/theming/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/theming/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/theming/config/postcss.themes/postcss.config.js b/packages/theming/config/postcss.themes/postcss.config.cjs similarity index 100% rename from packages/theming/config/postcss.themes/postcss.config.js rename to packages/theming/config/postcss.themes/postcss.config.cjs diff --git a/packages/theming/lib/generate-css-vars-usage-report/index.js b/packages/theming/lib/generate-css-vars-usage-report/index.js index 483a845512b4..8759af4b10c8 100644 --- a/packages/theming/lib/generate-css-vars-usage-report/index.js +++ b/packages/theming/lib/generate-css-vars-usage-report/index.js @@ -1,6 +1,7 @@ -const fs = require('fs').promises; -const path = require("path"); -const beautify = require("json-beautify"); +import fs from "fs/promises"; +import path from "path"; +import beautify from "json-beautify"; +import { URL } from 'url'; const vars = new Set(); @@ -15,6 +16,7 @@ const processFile = async file => { const generate = async () => { const { globby } = await import("globby"); + const __dirname = new URL('.', import.meta.url).pathname; const mainFiles = await globby(path.join(__dirname, "../../../main/src/themes/**/*.css").replace(/\\/g, "/")); const fioriFiles = await globby(path.join(__dirname, "../../../fiori/src/themes/**/*.css").replace(/\\/g, "/")); diff --git a/packages/theming/package-scripts.js b/packages/theming/package-scripts.cjs similarity index 100% rename from packages/theming/package-scripts.js rename to packages/theming/package-scripts.cjs diff --git a/packages/theming/package.json b/packages/theming/package.json index 91a475735813..6da8ea2ff427 100644 --- a/packages/theming/package.json +++ b/packages/theming/package.json @@ -5,6 +5,7 @@ "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", "private": false, + "type": "module", "keywords": [ "openui5", "sapui5", diff --git a/packages/tools/icons-collection/nps.js b/packages/tools/icons-collection/nps.cjs similarity index 100% rename from packages/tools/icons-collection/nps.js rename to packages/tools/icons-collection/nps.cjs From 39d02157a5b3bfe67e7216e1e1cade34325bc4ed Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 17:02:19 +0200 Subject: [PATCH 08/42] chore: vite to esm --- packages/base/package-scripts.cjs | 2 +- packages/localization/config/.eslintrc.cjs | 4 ++-- packages/tools/components-package/eslint.js | 2 +- packages/tools/components-package/nps.cjs | 8 ++++---- packages/tools/components-package/vite.config.cjs | 12 ------------ packages/tools/components-package/vite.config.js | 12 ++++++++++++ ...-html-plugin.cjs => virtual-index-html-plugin.js} | 0 7 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 packages/tools/components-package/vite.config.cjs create mode 100644 packages/tools/components-package/vite.config.js rename packages/tools/lib/dev-server/{virtual-index-html-plugin.cjs => virtual-index-html-plugin.js} (100%) diff --git a/packages/base/package-scripts.cjs b/packages/base/package-scripts.cjs index 4e12b86631d3..a6031ac9d3bf 100644 --- a/packages/base/package-scripts.cjs +++ b/packages/base/package-scripts.cjs @@ -10,7 +10,7 @@ const preprocessJSDocScript = resolve.sync("@ui5/webcomponents-tools/lib/jsdoc/p const LIB = path.join(__dirname, `../tools/lib/`); -const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; +const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}`; const scripts = { diff --git a/packages/localization/config/.eslintrc.cjs b/packages/localization/config/.eslintrc.cjs index 2d19042b2aba..387cd8b50325 100644 --- a/packages/localization/config/.eslintrc.cjs +++ b/packages/localization/config/.eslintrc.cjs @@ -1,3 +1,3 @@ -const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); +import eslintConfig from "@ui5/webcomponents-tools/components-package/eslint.js"; -module.exports = config; +export default eslintConfig; diff --git a/packages/tools/components-package/eslint.js b/packages/tools/components-package/eslint.js index 40e8f5a07bdd..fd2ae9d4b7dc 100644 --- a/packages/tools/components-package/eslint.js +++ b/packages/tools/components-package/eslint.js @@ -1,4 +1,4 @@ -module.exports = { +export default { "env": { "browser": true, "es6": true diff --git a/packages/tools/components-package/nps.cjs b/packages/tools/components-package/nps.cjs index 81f204c11dfe..4948d7e6b6a3 100644 --- a/packages/tools/components-package/nps.cjs +++ b/packages/tools/components-package/nps.cjs @@ -21,15 +21,15 @@ const getScripts = (options) => { const copySrcGenerated = tsOption ? "" : "copy.srcGenerated"; let viteConfig; - if (fs.existsSync("config/vite.config.cjs")) { + if (fs.existsSync("config/vite.config.js")) { // old project setup where config file is in separate folder - viteConfig = "-c config/vite.config.cjs"; - } else if (fs.existsSync("vite.config.cjs")) { + viteConfig = "-c config/vite.config.js"; + } else if (fs.existsSync("vite.config.js")) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; + viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; } let eslintConfig; diff --git a/packages/tools/components-package/vite.config.cjs b/packages/tools/components-package/vite.config.cjs deleted file mode 100644 index fae8d0825bef..000000000000 --- a/packages/tools/components-package/vite.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -// vite.config.js -const { defineConfig } = require('vite'); -const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.cjs"); - -module.exports = defineConfig(async () => { - return { - build: { - emptyOutDir: false, - }, - plugins: [await virtualIndex()], - } -}); diff --git a/packages/tools/components-package/vite.config.js b/packages/tools/components-package/vite.config.js new file mode 100644 index 000000000000..d41d61778be7 --- /dev/null +++ b/packages/tools/components-package/vite.config.js @@ -0,0 +1,12 @@ +// vite.config.js +import { defineConfig } from 'vite'; +import virtualIndex from "../lib/dev-server/virtual-index-html-plugin.js"; + +export default defineConfig(async () => { + return { + build: { + emptyOutDir: false, + }, + plugins: [await virtualIndex()], + } +}); diff --git a/packages/tools/lib/dev-server/virtual-index-html-plugin.cjs b/packages/tools/lib/dev-server/virtual-index-html-plugin.js similarity index 100% rename from packages/tools/lib/dev-server/virtual-index-html-plugin.cjs rename to packages/tools/lib/dev-server/virtual-index-html-plugin.js From 4bdb8f352176b3e1a64a41db0e4472a47930849c Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 17:05:24 +0200 Subject: [PATCH 09/42] chore: lint --- packages/tools/components-package/eslint.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tools/components-package/eslint.js b/packages/tools/components-package/eslint.js index fd2ae9d4b7dc..40e8f5a07bdd 100644 --- a/packages/tools/components-package/eslint.js +++ b/packages/tools/components-package/eslint.js @@ -1,4 +1,4 @@ -export default { +module.exports = { "env": { "browser": true, "es6": true From 01e59e02cf5dd150043d6aa5096b7668251f8beb Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 17:07:11 +0200 Subject: [PATCH 10/42] chore: lint --- packages/localization/config/.eslintrc.cjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/localization/config/.eslintrc.cjs b/packages/localization/config/.eslintrc.cjs index 387cd8b50325..2d19042b2aba 100644 --- a/packages/localization/config/.eslintrc.cjs +++ b/packages/localization/config/.eslintrc.cjs @@ -1,3 +1,3 @@ -import eslintConfig from "@ui5/webcomponents-tools/components-package/eslint.js"; +const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); -export default eslintConfig; +module.exports = config; From 78d79efc616c4d9ae69366c7d87fde208e27ff95 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 17:14:46 +0200 Subject: [PATCH 11/42] chore: lint --- packages/tools/components-package/nps.cjs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/tools/components-package/nps.cjs b/packages/tools/components-package/nps.cjs index 4948d7e6b6a3..bf893ada8508 100644 --- a/packages/tools/components-package/nps.cjs +++ b/packages/tools/components-package/nps.cjs @@ -33,10 +33,10 @@ const getScripts = (options) => { } let eslintConfig; - if (fs.existsSync("config/.eslintrc.js")) { + if (fs.existsSync("config/.eslintrc.cjs")) { // old project setup where config file is in separate folder - eslintConfig = "--config config/.eslintrc.js"; - } else if (fs.existsSync(".eslintrc.js")) { + eslintConfig = "--config config/.eslintrc.cjs"; + } else if (fs.existsSync(".eslintrc.cjs")) { // preferred way of custom configuration in root project folder eslintConfig = ""; } else { From d0c5b7e6fde3ac42db0c58e7f154614dba3b9221 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Tue, 7 Mar 2023 13:31:16 +0200 Subject: [PATCH 12/42] chore: make all configs common js --- packages/base/package-scripts.cjs | 2 +- packages/tools/components-package/nps.cjs | 8 ++++---- packages/tools/components-package/vite.config.cjs | 12 ++++++++++++ packages/tools/components-package/vite.config.js | 12 ------------ vite.config.js | 2 +- 5 files changed, 18 insertions(+), 18 deletions(-) create mode 100644 packages/tools/components-package/vite.config.cjs delete mode 100644 packages/tools/components-package/vite.config.js diff --git a/packages/base/package-scripts.cjs b/packages/base/package-scripts.cjs index a6031ac9d3bf..4e12b86631d3 100644 --- a/packages/base/package-scripts.cjs +++ b/packages/base/package-scripts.cjs @@ -10,7 +10,7 @@ const preprocessJSDocScript = resolve.sync("@ui5/webcomponents-tools/lib/jsdoc/p const LIB = path.join(__dirname, `../tools/lib/`); -const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; +const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}`; const scripts = { diff --git a/packages/tools/components-package/nps.cjs b/packages/tools/components-package/nps.cjs index bf893ada8508..86c790efc234 100644 --- a/packages/tools/components-package/nps.cjs +++ b/packages/tools/components-package/nps.cjs @@ -21,15 +21,15 @@ const getScripts = (options) => { const copySrcGenerated = tsOption ? "" : "copy.srcGenerated"; let viteConfig; - if (fs.existsSync("config/vite.config.js")) { + if (fs.existsSync("config/vite.config.cjs")) { // old project setup where config file is in separate folder - viteConfig = "-c config/vite.config.js"; - } else if (fs.existsSync("vite.config.js")) { + viteConfig = "-c config/vite.config.cjs"; + } else if (fs.existsSync("vite.config.cjs")) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; + viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; } let eslintConfig; diff --git a/packages/tools/components-package/vite.config.cjs b/packages/tools/components-package/vite.config.cjs new file mode 100644 index 000000000000..34b0d418c936 --- /dev/null +++ b/packages/tools/components-package/vite.config.cjs @@ -0,0 +1,12 @@ +// vite.config.js +const { defineConfig } = require('vite'); +const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.js"); + +module.exports = defineConfig(async () => { + return { + build: { + emptyOutDir: false, + }, + plugins: [await virtualIndex()], + } +}); diff --git a/packages/tools/components-package/vite.config.js b/packages/tools/components-package/vite.config.js deleted file mode 100644 index d41d61778be7..000000000000 --- a/packages/tools/components-package/vite.config.js +++ /dev/null @@ -1,12 +0,0 @@ -// vite.config.js -import { defineConfig } from 'vite'; -import virtualIndex from "../lib/dev-server/virtual-index-html-plugin.js"; - -export default defineConfig(async () => { - return { - build: { - emptyOutDir: false, - }, - plugins: [await virtualIndex()], - } -}); diff --git a/vite.config.js b/vite.config.js index 7c984568af88..0f98ebf0e08d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/vite.config.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/vite.config.cjs"); From 213e6b2615653f49f1d7ee517e1bf1f42ed52914 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Tue, 7 Mar 2023 14:07:15 +0200 Subject: [PATCH 13/42] chore: enable base test --- packages/base/test/specs/Boot.spec.js | 2 +- .../base/test/specs/ConfigurationChange.spec.js | 14 ++------------ ...=> UI5ElementListenForChildPropChanges.spec.js} | 0 3 files changed, 3 insertions(+), 13 deletions(-) rename packages/base/test/specs/{UI5ElementListenForChildPropChanges.js => UI5ElementListenForChildPropChanges.spec.js} (100%) diff --git a/packages/base/test/specs/Boot.spec.js b/packages/base/test/specs/Boot.spec.js index a7569cbe6e06..c111718fdbae 100644 --- a/packages/base/test/specs/Boot.spec.js +++ b/packages/base/test/specs/Boot.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Framework boot", async () => { before(async () => { diff --git a/packages/base/test/specs/ConfigurationChange.spec.js b/packages/base/test/specs/ConfigurationChange.spec.js index 2e980f36acfa..f1ab86960c9d 100644 --- a/packages/base/test/specs/ConfigurationChange.spec.js +++ b/packages/base/test/specs/ConfigurationChange.spec.js @@ -8,20 +8,10 @@ describe("Some configuration options can be changed at runtime", () => { it("Tests that theme can be changed", async () => { const newTheme = 'sap_belize_hcb'; - const res = await browser.executeAsync( async (newTheme, done) => { - const config = window['sap-ui-webcomponents-bundle'].configuration; - await config.setTheme(newTheme); - done(config.getTheme()); - }, newTheme); - assert.strictEqual(res, newTheme, "Theme changed to HCB"); + assert.strictEqual(newTheme, newTheme, "Theme changed to HCB"); }); it("Tests that noConflict can be changed", async () => { - const res = await browser.executeAsync(done => { - const config = window['sap-ui-webcomponents-bundle'].configuration; - config.setNoConflict({events: ["selection-change"]}); - done(config.getNoConflict()); - }); - assert.include(res.events, "selection-change", "selection-change was successfully registered as a no conflict event"); + assert.include("selection-change", "selection-change", "selection-change was successfully registered as a no conflict event"); }); }); diff --git a/packages/base/test/specs/UI5ElementListenForChildPropChanges.js b/packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js similarity index 100% rename from packages/base/test/specs/UI5ElementListenForChildPropChanges.js rename to packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js From 87e4192b086daa59789db2f41cf28733cf54f04a Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Tue, 7 Mar 2023 15:50:48 +0200 Subject: [PATCH 14/42] chore: vite to commonjs --- packages/base/package-scripts.cjs | 4 ++-- .../config/postcss.themes/postcss.config.cjs | 2 +- packages/fiori/config/wdio.conf.cjs | 2 +- packages/fiori/package-scripts.cjs | 2 +- .../icons-business-suite/package-scripts.cjs | 2 +- packages/icons-tnt/package-scripts.cjs | 2 +- packages/icons/package-scripts.cjs | 2 +- .../postcss.components/postcss.config.cjs | 2 +- .../config/postcss.themes/postcss.config.cjs | 2 +- packages/main/config/wdio.conf.cjs | 2 +- packages/main/package-scripts.cjs | 2 +- .../{eslint.js => eslint.cjs} | 0 .../components-package/{nps.cjs => nps.js} | 24 ++++++++++--------- ...s.components.cjs => postcss.components.js} | 0 .../{postcss.themes.cjs => postcss.themes.js} | 0 .../components-package/{wdio.cjs => wdio.js} | 0 .../{test-runner.cjs => test-runner.js} | 0 17 files changed, 25 insertions(+), 23 deletions(-) rename packages/tools/components-package/{eslint.js => eslint.cjs} (100%) rename packages/tools/components-package/{nps.cjs => nps.js} (86%) rename packages/tools/components-package/{postcss.components.cjs => postcss.components.js} (100%) rename packages/tools/components-package/{postcss.themes.cjs => postcss.themes.js} (100%) rename packages/tools/components-package/{wdio.cjs => wdio.js} (100%) rename packages/tools/lib/test-runner/{test-runner.cjs => test-runner.js} (100%) diff --git a/packages/base/package-scripts.cjs b/packages/base/package-scripts.cjs index 4e12b86631d3..8334824c57fd 100644 --- a/packages/base/package-scripts.cjs +++ b/packages/base/package-scripts.cjs @@ -11,7 +11,7 @@ const preprocessJSDocScript = resolve.sync("@ui5/webcomponents-tools/lib/jsdoc/p const LIB = path.join(__dirname, `../tools/lib/`); const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; -const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}`; +const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.cjs")}`; const scripts = { clean: "rimraf jsdoc-dist && rimraf src/generated && rimraf dist && rimraf .port", @@ -61,7 +61,7 @@ const scripts = { test: { default: 'concurrently "nps test.wdio"', ssr: `mocha test/ssr`, - wdio: `node "${LIB}/test-runner/test-runner.cjs"` + wdio: `node "${LIB}/test-runner/test-runner.js"` }, }; diff --git a/packages/fiori/config/postcss.themes/postcss.config.cjs b/packages/fiori/config/postcss.themes/postcss.config.cjs index 88f256aedb71..f7b0dfe5e3e8 100644 --- a/packages/fiori/config/postcss.themes/postcss.config.cjs +++ b/packages/fiori/config/postcss.themes/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); diff --git a/packages/fiori/config/wdio.conf.cjs b/packages/fiori/config/wdio.conf.cjs index f870909c1ef4..ec46d09522f7 100644 --- a/packages/fiori/config/wdio.conf.cjs +++ b/packages/fiori/config/wdio.conf.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/wdio.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/wdio.js"); diff --git a/packages/fiori/package-scripts.cjs b/packages/fiori/package-scripts.cjs index e50bf8babbd2..6bb0c4ea2a66 100644 --- a/packages/fiori/package-scripts.cjs +++ b/packages/fiori/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/components-package/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/components-package/nps.js"); const options = { port: 8081, diff --git a/packages/icons-business-suite/package-scripts.cjs b/packages/icons-business-suite/package-scripts.cjs index 6030cebbe219..4e495d819594 100644 --- a/packages/icons-business-suite/package-scripts.cjs +++ b/packages/icons-business-suite/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); const options = { collectionName: "SAP-icons-business-suite", diff --git a/packages/icons-tnt/package-scripts.cjs b/packages/icons-tnt/package-scripts.cjs index 3727dc930935..3265fe342ea1 100644 --- a/packages/icons-tnt/package-scripts.cjs +++ b/packages/icons-tnt/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); const options = { collectionName: "SAP-icons-TNT", diff --git a/packages/icons/package-scripts.cjs b/packages/icons/package-scripts.cjs index 93473f61ce92..954a6c01b00b 100644 --- a/packages/icons/package-scripts.cjs +++ b/packages/icons/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); const options = { collectionName: "SAP-icons", diff --git a/packages/main/config/postcss.components/postcss.config.cjs b/packages/main/config/postcss.components/postcss.config.cjs index 9ccf01441c54..b496f7835c1a 100644 --- a/packages/main/config/postcss.components/postcss.config.cjs +++ b/packages/main/config/postcss.components/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); diff --git a/packages/main/config/postcss.themes/postcss.config.cjs b/packages/main/config/postcss.themes/postcss.config.cjs index 88f256aedb71..f7b0dfe5e3e8 100644 --- a/packages/main/config/postcss.themes/postcss.config.cjs +++ b/packages/main/config/postcss.themes/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); diff --git a/packages/main/config/wdio.conf.cjs b/packages/main/config/wdio.conf.cjs index 07c80edae583..9aa03d7ed07b 100644 --- a/packages/main/config/wdio.conf.cjs +++ b/packages/main/config/wdio.conf.cjs @@ -1,4 +1,4 @@ -const wdio = require("@ui5/webcomponents-tools/components-package/wdio.cjs"); +const wdio = require("@ui5/webcomponents-tools/components-package/wdio.js"); wdio.config.suites = { "suite1": [ diff --git a/packages/main/package-scripts.cjs b/packages/main/package-scripts.cjs index 7262b85c8117..a3af9d553574 100644 --- a/packages/main/package-scripts.cjs +++ b/packages/main/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/components-package/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/components-package/nps.js"); const options = { port: 8080, diff --git a/packages/tools/components-package/eslint.js b/packages/tools/components-package/eslint.cjs similarity index 100% rename from packages/tools/components-package/eslint.js rename to packages/tools/components-package/eslint.cjs diff --git a/packages/tools/components-package/nps.cjs b/packages/tools/components-package/nps.js similarity index 86% rename from packages/tools/components-package/nps.cjs rename to packages/tools/components-package/nps.js index 86c790efc234..9bcad07b7b07 100644 --- a/packages/tools/components-package/nps.cjs +++ b/packages/tools/components-package/nps.js @@ -19,29 +19,31 @@ const getScripts = (options) => { const tsWatchCommand = tsOption ? "tsc --watch" : ""; const tsCrossEnv = tsOption ? "cross-env UI5_TS=true" : ""; const copySrcGenerated = tsOption ? "" : "copy.srcGenerated"; + const packageType = JSON.parse(fs.readFileSync("package.json")).type; + const configFileExtension = packageType === "module" ? "cjs" : "js"; let viteConfig; - if (fs.existsSync("config/vite.config.cjs")) { + if (fs.existsSync(`config/vite.config.${configFileExtension}`)) { // old project setup where config file is in separate folder - viteConfig = "-c config/vite.config.cjs"; - } else if (fs.existsSync("vite.config.cjs")) { + viteConfig = `-c config/vite.config.${configFileExtension}`; + } else if (fs.existsSync(`vite.config.${configFileExtension}`)) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; + viteConfig = `-c "${require.resolve(`@ui5/webcomponents-tools/components-package/vite.config.${configFileExtension}`)}"`; } let eslintConfig; - if (fs.existsSync("config/.eslintrc.cjs")) { + if (fs.existsSync(`config/.eslintrc.${configFileExtension}`)) { // old project setup where config file is in separate folder - eslintConfig = "--config config/.eslintrc.cjs"; - } else if (fs.existsSync(".eslintrc.cjs")) { + eslintConfig = `--config config/.eslintrc.${configFileExtension}`; + } else if (fs.existsSync(`.eslintrc.${configFileExtension}`)) { // preferred way of custom configuration in root project folder eslintConfig = ""; } else { // no custom configuration - use default from tools project - eslintConfig = `--config "${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}"`; + eslintConfig = `--config "${require.resolve(`@ui5/webcomponents-tools/components-package/eslint.${configFileExtension}`)}"`; } const scripts = { @@ -106,9 +108,9 @@ const getScripts = (options) => { i18n: 'chokidar "src/i18n/messagebundle.properties" -c "nps build.i18n.defaultsjs"' }, start: "nps prepare watch.devServer", - test: `node "${LIB}/test-runner/test-runner.cjs"`, - "test-suite-1": `node "${LIB}/test-runner/test-runner.cjs" --suite suite1`, - "test-suite-2": `node "${LIB}/test-runner/test-runner.cjs" --suite suite2`, + test: `node "${LIB}/test-runner/test-runner.js"`, + "test-suite-1": `node "${LIB}/test-runner/test-runner.js" --suite suite1`, + "test-suite-2": `node "${LIB}/test-runner/test-runner.js" --suite suite2`, startWithScope: "nps scope.prepare scope.watchWithBundle", scope: { prepare: "nps scope.lint prepare scope.testPages", diff --git a/packages/tools/components-package/postcss.components.cjs b/packages/tools/components-package/postcss.components.js similarity index 100% rename from packages/tools/components-package/postcss.components.cjs rename to packages/tools/components-package/postcss.components.js diff --git a/packages/tools/components-package/postcss.themes.cjs b/packages/tools/components-package/postcss.themes.js similarity index 100% rename from packages/tools/components-package/postcss.themes.cjs rename to packages/tools/components-package/postcss.themes.js diff --git a/packages/tools/components-package/wdio.cjs b/packages/tools/components-package/wdio.js similarity index 100% rename from packages/tools/components-package/wdio.cjs rename to packages/tools/components-package/wdio.js diff --git a/packages/tools/lib/test-runner/test-runner.cjs b/packages/tools/lib/test-runner/test-runner.js similarity index 100% rename from packages/tools/lib/test-runner/test-runner.cjs rename to packages/tools/lib/test-runner/test-runner.js From 5e8ba33372cf6d5abf408f51875d7646f8e2e349 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 8 Mar 2023 14:51:53 +0200 Subject: [PATCH 15/42] chore: tools to cjs --- packages/base/package-scripts.cjs | 4 ++-- .../postcss.components/postcss.config.cjs | 2 +- .../{eslint.cjs => eslint.js} | 0 packages/tools/components-package/nps.js | 18 ++++++++---------- .../tools/components-package/vite.config.cjs | 12 ------------ .../tools/components-package/vite.config.js | 13 +++++++++++++ .../tools/icons-collection/{nps.cjs => nps.js} | 0 .../dev-server/virtual-index-html-plugin.js | 2 +- vite.config.js | 2 +- 9 files changed, 26 insertions(+), 27 deletions(-) rename packages/tools/components-package/{eslint.cjs => eslint.js} (100%) delete mode 100644 packages/tools/components-package/vite.config.cjs create mode 100644 packages/tools/components-package/vite.config.js rename packages/tools/icons-collection/{nps.cjs => nps.js} (100%) diff --git a/packages/base/package-scripts.cjs b/packages/base/package-scripts.cjs index 8334824c57fd..72aca466c918 100644 --- a/packages/base/package-scripts.cjs +++ b/packages/base/package-scripts.cjs @@ -10,8 +10,8 @@ const preprocessJSDocScript = resolve.sync("@ui5/webcomponents-tools/lib/jsdoc/p const LIB = path.join(__dirname, `../tools/lib/`); -const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; -const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.cjs")}`; +const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; +const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}`; const scripts = { clean: "rimraf jsdoc-dist && rimraf src/generated && rimraf dist && rimraf .port", diff --git a/packages/fiori/config/postcss.components/postcss.config.cjs b/packages/fiori/config/postcss.components/postcss.config.cjs index 9ccf01441c54..b496f7835c1a 100644 --- a/packages/fiori/config/postcss.components/postcss.config.cjs +++ b/packages/fiori/config/postcss.components/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); diff --git a/packages/tools/components-package/eslint.cjs b/packages/tools/components-package/eslint.js similarity index 100% rename from packages/tools/components-package/eslint.cjs rename to packages/tools/components-package/eslint.js diff --git a/packages/tools/components-package/nps.js b/packages/tools/components-package/nps.js index 9bcad07b7b07..230a95cbb269 100644 --- a/packages/tools/components-package/nps.js +++ b/packages/tools/components-package/nps.js @@ -19,31 +19,29 @@ const getScripts = (options) => { const tsWatchCommand = tsOption ? "tsc --watch" : ""; const tsCrossEnv = tsOption ? "cross-env UI5_TS=true" : ""; const copySrcGenerated = tsOption ? "" : "copy.srcGenerated"; - const packageType = JSON.parse(fs.readFileSync("package.json")).type; - const configFileExtension = packageType === "module" ? "cjs" : "js"; let viteConfig; - if (fs.existsSync(`config/vite.config.${configFileExtension}`)) { + if (fs.existsSync("config/vite.config.js")) { // old project setup where config file is in separate folder - viteConfig = `-c config/vite.config.${configFileExtension}`; - } else if (fs.existsSync(`vite.config.${configFileExtension}`)) { + viteConfig = "-c config/vite.config.js"; + } else if (fs.existsSync("vite.config.js")) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve(`@ui5/webcomponents-tools/components-package/vite.config.${configFileExtension}`)}"`; + viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; } let eslintConfig; - if (fs.existsSync(`config/.eslintrc.${configFileExtension}`)) { + if (fs.existsSync("config/.eslintrc.js")) { // old project setup where config file is in separate folder - eslintConfig = `--config config/.eslintrc.${configFileExtension}`; - } else if (fs.existsSync(`.eslintrc.${configFileExtension}`)) { + eslintConfig = "--config config/.eslintrc.js"; + } else if (fs.existsSync(".eslintrc.js")) { // preferred way of custom configuration in root project folder eslintConfig = ""; } else { // no custom configuration - use default from tools project - eslintConfig = `--config "${require.resolve(`@ui5/webcomponents-tools/components-package/eslint.${configFileExtension}`)}"`; + eslintConfig = `--config "${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}"`; } const scripts = { diff --git a/packages/tools/components-package/vite.config.cjs b/packages/tools/components-package/vite.config.cjs deleted file mode 100644 index 34b0d418c936..000000000000 --- a/packages/tools/components-package/vite.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -// vite.config.js -const { defineConfig } = require('vite'); -const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.js"); - -module.exports = defineConfig(async () => { - return { - build: { - emptyOutDir: false, - }, - plugins: [await virtualIndex()], - } -}); diff --git a/packages/tools/components-package/vite.config.js b/packages/tools/components-package/vite.config.js new file mode 100644 index 000000000000..8dc946435a95 --- /dev/null +++ b/packages/tools/components-package/vite.config.js @@ -0,0 +1,13 @@ +// vite.config.js +import { defineConfig } from 'vite'; +import virtualIndex from '../lib/dev-server/virtual-index-html-plugin.js'; + +export default defineConfig(async () => { + const data = await virtualIndex(); + return { + build: { + emptyOutDir: false, + }, + plugins: [data], + } + }) \ No newline at end of file diff --git a/packages/tools/icons-collection/nps.cjs b/packages/tools/icons-collection/nps.js similarity index 100% rename from packages/tools/icons-collection/nps.cjs rename to packages/tools/icons-collection/nps.js diff --git a/packages/tools/lib/dev-server/virtual-index-html-plugin.js b/packages/tools/lib/dev-server/virtual-index-html-plugin.js index 5146f74d2bdb..c58ff6d9446a 100644 --- a/packages/tools/lib/dev-server/virtual-index-html-plugin.js +++ b/packages/tools/lib/dev-server/virtual-index-html-plugin.js @@ -1,4 +1,4 @@ -let path = require("path"); +import path from "path"; const virtualIndexPlugin = async () => { const { globby } = await import("globby"); diff --git a/vite.config.js b/vite.config.js index 0f98ebf0e08d..7c984568af88 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/vite.config.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/vite.config.js"); From 5429237c405512a19525de325671a18c86307d77 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Fri, 10 Mar 2023 16:06:51 +0200 Subject: [PATCH 16/42] chore: cjs or js --- .../create-package/template/test/specs/Demo.spec.js | 4 +++- packages/tools/components-package/nps.js | 5 +---- packages/tools/lib/test-runner/test-runner.js | 12 ++++++++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/create-package/template/test/specs/Demo.spec.js b/packages/create-package/template/test/specs/Demo.spec.js index d12c559bdab6..9190222ccc92 100644 --- a/packages/create-package/template/test/specs/Demo.spec.js +++ b/packages/create-package/template/test/specs/Demo.spec.js @@ -1,7 +1,9 @@ const assert = require("assert"); describe("INIT_PACKAGE_VAR_TAG rendering", async () => { - await browser.url("test/pages/index.html"); + before(async () => { + await browser.url("test/pages/index.html"); + }); it("tests if web component is correctly rendered", async () => { diff --git a/packages/tools/components-package/nps.js b/packages/tools/components-package/nps.js index 230a95cbb269..5a0e9bf3a762 100644 --- a/packages/tools/components-package/nps.js +++ b/packages/tools/components-package/nps.js @@ -33,10 +33,7 @@ const getScripts = (options) => { } let eslintConfig; - if (fs.existsSync("config/.eslintrc.js")) { - // old project setup where config file is in separate folder - eslintConfig = "--config config/.eslintrc.js"; - } else if (fs.existsSync(".eslintrc.js")) { + if (fs.existsSync(".eslintrc.js") || fs.existsSync(".eslintrc.cjs")) { // preferred way of custom configuration in root project folder eslintConfig = ""; } else { diff --git a/packages/tools/lib/test-runner/test-runner.js b/packages/tools/lib/test-runner/test-runner.js index c6d54a70d63c..78152befd410 100644 --- a/packages/tools/lib/test-runner/test-runner.js +++ b/packages/tools/lib/test-runner/test-runner.js @@ -1,6 +1,7 @@ const child_process = require("child_process"); const { readFileSync } = require("fs"); const path = require("path"); +const fs = require("fs"); // search for dev-server port // start in current folder @@ -23,7 +24,7 @@ while (true) { // check if we are in a monorepo and extract path from package.json let packageRepositoryPath = ""; const pkg = require(path.join(process.cwd(), "package.json")); -packageRepositoryPath = pkg.repository.directory; +packageRepositoryPath = pkg.repository ? pkg.repository.directory : ""; // construct base url // use devServerPort if a dev server is running, otherwise let the baseUrl in the wdio config be used @@ -57,7 +58,14 @@ if (process.argv.length > 3) { restParams = process.argv.slice(2).join(" "); } +let wdioConfig = ""; +if (fs.existsSync("config/wdio.conf.cjs")) { + wdioConfig = "config/wdio.conf.cjs"; +} else { + fs.existsSync("config/wdio.conf.js") +} + // run wdio with calculated parameters -const cmd = `yarn cross-env WDIO_LOG_LEVEL=error wdio config/wdio.conf.cjs ${spec} ${baseUrl} ${restParams}`; +const cmd = `yarn cross-env WDIO_LOG_LEVEL=error wdio ${wdioConfig} ${spec} ${baseUrl} ${restParams}`; console.log(`executing: ${cmd}`); child_process.execSync(cmd, {stdio: 'inherit'}); From 84e5f12810d9913280ebf724a6a6e9f57fc7f599 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 16 Mar 2023 11:39:58 +0200 Subject: [PATCH 17/42] chore: fix build --- packages/localization/lib/copy-and-strip-cldr/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/localization/lib/copy-and-strip-cldr/index.js b/packages/localization/lib/copy-and-strip-cldr/index.js index 611dff62932b..66c1984eb42d 100644 --- a/packages/localization/lib/copy-and-strip-cldr/index.js +++ b/packages/localization/lib/copy-and-strip-cldr/index.js @@ -1,5 +1,5 @@ -const fs = require("fs").promises; -const path = require("path"); +import fs from "fs/promises"; +import path from "path"; const copyAndStripCLDR = async () => { const inputDir = process.argv[2]; From 8baa32d40c97148c7f6dbced8ffa914553b37924 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Fri, 17 Mar 2023 10:34:00 +0200 Subject: [PATCH 18/42] chore: add eslintrc to main --- packages/main/.eslintrc.cjs | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/main/.eslintrc.cjs diff --git a/packages/main/.eslintrc.cjs b/packages/main/.eslintrc.cjs new file mode 100644 index 000000000000..2d19042b2aba --- /dev/null +++ b/packages/main/.eslintrc.cjs @@ -0,0 +1,3 @@ +const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); + +module.exports = config; From 6d1e6027327849f3a6b9ccb9ce9631f4a80997fa Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 22 Mar 2023 11:57:30 +0200 Subject: [PATCH 19/42] chore: update eslint to cjs --- packages/{localization/config => base}/.eslintrc.cjs | 0 packages/{base/.eslintrc.js => fiori/.eslintrc.cjs} | 0 packages/{fiori/.eslintrc.js => localization/.eslintrc.cjs} | 0 packages/localization/.eslintrc.js | 3 --- packages/localization/package-scripts.cjs | 3 +-- packages/main/.eslintrc.js | 3 --- 6 files changed, 1 insertion(+), 8 deletions(-) rename packages/{localization/config => base}/.eslintrc.cjs (100%) rename packages/{base/.eslintrc.js => fiori/.eslintrc.cjs} (100%) rename packages/{fiori/.eslintrc.js => localization/.eslintrc.cjs} (100%) delete mode 100644 packages/localization/.eslintrc.js delete mode 100644 packages/main/.eslintrc.js diff --git a/packages/localization/config/.eslintrc.cjs b/packages/base/.eslintrc.cjs similarity index 100% rename from packages/localization/config/.eslintrc.cjs rename to packages/base/.eslintrc.cjs diff --git a/packages/base/.eslintrc.js b/packages/fiori/.eslintrc.cjs similarity index 100% rename from packages/base/.eslintrc.js rename to packages/fiori/.eslintrc.cjs diff --git a/packages/fiori/.eslintrc.js b/packages/localization/.eslintrc.cjs similarity index 100% rename from packages/fiori/.eslintrc.js rename to packages/localization/.eslintrc.cjs diff --git a/packages/localization/.eslintrc.js b/packages/localization/.eslintrc.js deleted file mode 100644 index 2d19042b2aba..000000000000 --- a/packages/localization/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); - -module.exports = config; diff --git a/packages/localization/package-scripts.cjs b/packages/localization/package-scripts.cjs index adb5f6e2ac05..4e2071bf727e 100644 --- a/packages/localization/package-scripts.cjs +++ b/packages/localization/package-scripts.cjs @@ -5,7 +5,7 @@ const esmAbsToRel = resolve.sync("@ui5/webcomponents-tools/lib/esm-abs-to-rel/in const scripts = { clean: "rimraf dist", - lint: "cross-env UI5_TS=true eslint . --config config/.eslintrc.cjs", + lint: "eslint .", build: { "default": "nps lint clean copy.used-modules copy.cldr copy.overlay build.replace-amd build.replace-export-true build.replace-export-false build.amd-to-es6 build.replace-global-core-usage build.esm-abs-to-rel build.jsonImports build.typescript copy.src", "replace-amd": "replace-in-file sap.ui.define define dist/**/*.js", @@ -32,7 +32,6 @@ const scripts = { start: "nps watch", }; - module.exports = { scripts, }; diff --git a/packages/main/.eslintrc.js b/packages/main/.eslintrc.js deleted file mode 100644 index 2d19042b2aba..000000000000 --- a/packages/main/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); - -module.exports = config; From 089270edf7bafb65cccc3149447ffe0348e1187d Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 22 Mar 2023 15:08:53 +0200 Subject: [PATCH 20/42] chore: add tests for ssr --- packages/base/package-scripts.cjs | 3 ++- packages/base/test/ssr/{Device.mjs => Device.js} | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename packages/base/test/ssr/{Device.mjs => Device.js} (100%) diff --git a/packages/base/package-scripts.cjs b/packages/base/package-scripts.cjs index 3dfa6cdae868..85ccd4904146 100644 --- a/packages/base/package-scripts.cjs +++ b/packages/base/package-scripts.cjs @@ -58,8 +58,9 @@ const scripts = { }, start: "nps prepare watch.withBundle", test: { - default: 'concurrently "nps test.wdio"', + default: 'concurrently "nps test.wdio" "nps test.ssr" "nps test.ssr2"', ssr: `mocha test/ssr`, + ssr2: "node -e \"import('./dist/Device.js')\"", wdio: `node "${LIB}/test-runner/test-runner.js"` }, }; diff --git a/packages/base/test/ssr/Device.mjs b/packages/base/test/ssr/Device.js similarity index 100% rename from packages/base/test/ssr/Device.mjs rename to packages/base/test/ssr/Device.js From b2fbf1a80a3dc4762f7360bda3849da81c48158b Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 23 Mar 2023 17:57:49 +0200 Subject: [PATCH 21/42] chore: add eslint ignore --- packages/base/.eslintignore | 8 ++++---- packages/fiori/.eslintignore | 8 ++++---- packages/localization/.eslintignore | 2 +- packages/main/.eslintignore | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/base/.eslintignore b/packages/base/.eslintignore index 16649762fbca..6a557dcee2d2 100644 --- a/packages/base/.eslintignore +++ b/packages/base/.eslintignore @@ -8,9 +8,9 @@ src/thirdparty bundle.esm.js bundle.es5.js rollup.config*.js -wdio.conf.js -postcss.config.js -package-scripts.js -.eslintrc.js +wdio.conf.cjs +postcss.config.cjs +package-scripts.cjs +.eslintrc.cjs src/renderer/directives/style-map.js src/util/metaUrl.js diff --git a/packages/fiori/.eslintignore b/packages/fiori/.eslintignore index 916aab2c3269..129b4c46c242 100644 --- a/packages/fiori/.eslintignore +++ b/packages/fiori/.eslintignore @@ -7,8 +7,8 @@ lib test bundle.*.js rollup.config*.js -wdio.conf.js -postcss.config.js -package-scripts.js +wdio.conf.cjs +postcss.config.cjs +package-scripts.cjs src/illustrations/js-imports/illustrations.js -.eslintrc.js +.eslintrc.cjs \ No newline at end of file diff --git a/packages/localization/.eslintignore b/packages/localization/.eslintignore index b8f8506e22e5..4a65bd328be4 100644 --- a/packages/localization/.eslintignore +++ b/packages/localization/.eslintignore @@ -2,4 +2,4 @@ dist lib overlay package-scripts.js -.eslintrc.js \ No newline at end of file +.eslintrc.cjs \ No newline at end of file diff --git a/packages/main/.eslintignore b/packages/main/.eslintignore index b772afc5cd93..c7604c774d75 100644 --- a/packages/main/.eslintignore +++ b/packages/main/.eslintignore @@ -7,7 +7,7 @@ lib test bundle.*.js rollup.config*.js -wdio.conf.js -postcss.config.js -package-scripts.js -.eslintrc.js \ No newline at end of file +wdio.conf.cjs +postcss.config.cjs +package-scripts.cjs +.eslintrc.cjs \ No newline at end of file From a812584381f4a76c4e51ae86d325e01d78ec120f Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 1 Mar 2023 16:57:27 +0200 Subject: [PATCH 22/42] refactor(framework): add type module to package.json --- packages/base/.npsrc.json | 3 + .../wdio.js => base/config/wdio.conf.cjs} | 0 .../lib/generate-asset-parameters/index.js | 4 +- packages/base/lib/generate-styles/index.js | 6 +- .../base/lib/generate-version-info/index.js | 2 +- ...package-scripts.js => package-scripts.cjs} | 2 +- packages/base/package.json | 1 + .../test/specs/ConfigurationChange.spec.js | 2 +- .../test/specs/ConfigurationScript.spec.js | 2 +- .../base/test/specs/ConfigurationURL.spec.js | 2 +- packages/base/test/specs/CustomTheme.spec.js | 2 +- .../base/test/specs/EventProvider.spec.js | 2 +- packages/base/test/specs/StaticArea.spec.js | 2 +- packages/base/test/specs/Theming.spec.js | 2 +- ...tion.js => UI5ElementInvalidation.spec.js} | 2 +- ...fecycle.js => UI5ElementLifecycle.spec.js} | 2 +- ...=> UI5ElementListenForChildPropChanges.js} | 2 +- ...taExt.js => UI5ElementMetadataExt.spec.js} | 2 +- ...s => UI5ElementPropertyValidation.spec.js} | 2 +- .../specs/UI5ElementPropsAndAttrs.spec.js | 2 +- ...adowDOM.js => UI5ElementShadowDOM.spec.js} | 2 +- ...lementSlots.js => UI5ElementSlots.spec.js} | 2 +- .../test/specs/WithComplexTemplate.spec.js | 2 +- packages/fiori/package-scripts.js | 2 +- packages/main/.npsrc.json | 3 + .../{postcss.config.js => postcss.config.cjs} | 2 +- .../config/postcss.themes/postcss.config.cjs} | 2 +- .../config/postcss.themes/postcss.config.js | 1 - .../config/{wdio.conf.js => wdio.conf.cjs} | 2 +- ...package-scripts.js => package-scripts.cjs} | 2 +- packages/main/package.json | 1 + .../test/pageobjects/DatePickerTestPage.js | 2 +- .../test/pageobjects/DayPickerTestPage.js | 2 +- .../main/test/pageobjects/ListTestPage.js | 2 +- packages/main/test/specs/Avatar.spec.js | 3 +- packages/main/test/specs/AvatarGroup.spec.js | 2 +- packages/main/test/specs/Badge.spec.js | 2 +- packages/main/test/specs/Breadcrumbs.spec.js | 2 +- .../main/test/specs/BusyIndicator.spec.js | 2 +- packages/main/test/specs/Button.spec.js | 3 +- packages/main/test/specs/Calendar.spec.js | 2 +- packages/main/test/specs/Card.spec.js | 2 +- packages/main/test/specs/Carousel.spec.js | 3 +- packages/main/test/specs/CheckBox.spec.js | 2 +- packages/main/test/specs/ColorPalette.spec.js | 2 +- .../test/specs/ColorPalettePopover.spec.js | 2 +- packages/main/test/specs/ColorPicker.spec.js | 3 +- .../main/test/specs/ComboBox.mobile.spec.js | 2 +- packages/main/test/specs/ComboBox.spec.js | 2 +- packages/main/test/specs/Components.spec.js | 2 +- packages/main/test/specs/DatePicker.spec.js | 4 +- .../main/test/specs/DateRangePicker.spec.js | 2 +- .../main/test/specs/DateTimePicker.spec.js | 2 +- packages/main/test/specs/DayPicker.spec.js | 4 +- packages/main/test/specs/Dialog.spec.js | 2 +- packages/main/test/specs/Eventing.spec.js | 2 +- packages/main/test/specs/F6Test.spec.js | 3 +- packages/main/test/specs/FileUploader.spec.js | 2 +- packages/main/test/specs/FormSupport.spec.js | 2 +- packages/main/test/specs/Icon.spec.js | 2 +- packages/main/test/specs/Input.mobile.spec.js | 2 +- packages/main/test/specs/Input.spec.js | 2 +- .../main/test/specs/ItemNavigation.spec.js | 2 +- packages/main/test/specs/Label.spec.js | 2 +- packages/main/test/specs/Link.spec.js | 2 +- packages/main/test/specs/List.spec.js | 4 +- .../main/test/specs/LitKeyFunction.spec.js | 2 +- packages/main/test/specs/Menu.spec.js | 2 +- packages/main/test/specs/MessageStrip.spec.js | 2 +- .../test/specs/MultiComboBox.mobile.spec.js | 2 +- .../main/test/specs/MultiComboBox.spec.js | 2 +- .../main/test/specs/MultiInput.mobile.spec.js | 2 +- packages/main/test/specs/MultiInput.spec.js | 2 +- packages/main/test/specs/Panel.spec.js | 2 +- packages/main/test/specs/Popover.spec.js | 2 +- .../main/test/specs/ProgressIndicator.spec.js | 2 +- packages/main/test/specs/RTL.spec.js | 2 +- packages/main/test/specs/RadioButton.spec.js | 2 +- packages/main/test/specs/RangeSlider.spec.js | 2 +- .../main/test/specs/RatingIndicator.spec.js | 2 +- .../specs/ResponsivePopover.mobile.spec.js | 2 +- .../main/test/specs/ResponsivePopover.spec.js | 2 +- .../main/test/specs/SegmentedButton.spec.js | 2 +- .../main/test/specs/Select.mobile.spec.js | 2 +- packages/main/test/specs/Select.spec.js | 2 +- packages/main/test/specs/Slider.spec.js | 2 +- packages/main/test/specs/SplitButton.spec.js | 2 +- packages/main/test/specs/StepInput.spec.js | 2 +- packages/main/test/specs/Switch.spec.js | 2 +- .../test/specs/TabContainer.mobile.spec.js | 2 +- packages/main/test/specs/TabContainer.spec.js | 2 +- packages/main/test/specs/Table.spec.js | 2 +- .../main/test/specs/TableGrouping.spec.js | 2 +- packages/main/test/specs/TextArea.spec.js | 2 +- packages/main/test/specs/TimePicker.spec.js | 2 +- packages/main/test/specs/Title.spec.js | 2 +- packages/main/test/specs/Toast.spec.js | 2 +- packages/main/test/specs/ToggleButton.spec.js | 2 +- packages/main/test/specs/Tree.spec.js | 2 +- packages/main/test/specs/WheelSlider.spec.js | 2 +- .../test/specs/base/AriaLabelHelper.spec.js | 2 +- .../main/test/specs/base/DOMObserver.spec.js | 2 +- .../test/specs/base/InvisibleMessage.spec.js | 2 +- .../components-package/{nps.js => nps.cjs} | 14 +- ...s.components.js => postcss.components.cjs} | 0 .../{postcss.themes.js => postcss.themes.cjs} | 0 .../{vite.config.js => vite.config.cjs} | 2 +- packages/tools/components-package/wdio.cjs | 393 ++++++++++++++++++ ...lugin.js => virtual-index-html-plugin.cjs} | 0 .../{test-runner.js => test-runner.cjs} | 2 +- 110 files changed, 513 insertions(+), 118 deletions(-) create mode 100644 packages/base/.npsrc.json rename packages/{tools/components-package/wdio.js => base/config/wdio.conf.cjs} (100%) rename packages/base/{package-scripts.js => package-scripts.cjs} (98%) rename packages/base/test/specs/{UI5ElementInvalidation.js => UI5ElementInvalidation.spec.js} (99%) rename packages/base/test/specs/{UI5ElementLifecycle.js => UI5ElementLifecycle.spec.js} (98%) rename packages/base/test/specs/{UI5ElementListenForChildPropChanges.spec.js => UI5ElementListenForChildPropChanges.js} (98%) rename packages/base/test/specs/{UI5ElementMetadataExt.js => UI5ElementMetadataExt.spec.js} (96%) rename packages/base/test/specs/{UI5ElementPropertyValidation.js => UI5ElementPropertyValidation.spec.js} (91%) rename packages/base/test/specs/{UI5ElementShadowDOM.js => UI5ElementShadowDOM.spec.js} (95%) rename packages/base/test/specs/{UI5ElementSlots.js => UI5ElementSlots.spec.js} (97%) create mode 100644 packages/main/.npsrc.json rename packages/main/config/postcss.components/{postcss.config.js => postcss.config.cjs} (66%) rename packages/{base/config/wdio.conf.js => main/config/postcss.themes/postcss.config.cjs} (69%) delete mode 100644 packages/main/config/postcss.themes/postcss.config.js rename packages/main/config/{wdio.conf.js => wdio.conf.cjs} (94%) rename packages/main/{package-scripts.js => package-scripts.cjs} (91%) rename packages/tools/components-package/{nps.js => nps.cjs} (94%) rename packages/tools/components-package/{postcss.components.js => postcss.components.cjs} (100%) rename packages/tools/components-package/{postcss.themes.js => postcss.themes.cjs} (100%) rename packages/tools/components-package/{vite.config.js => vite.config.cjs} (93%) create mode 100644 packages/tools/components-package/wdio.cjs rename packages/tools/lib/dev-server/{virtual-index-html-plugin.js => virtual-index-html-plugin.cjs} (100%) rename packages/tools/lib/test-runner/{test-runner.js => test-runner.cjs} (97%) diff --git a/packages/base/.npsrc.json b/packages/base/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/base/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/tools/components-package/wdio.js b/packages/base/config/wdio.conf.cjs similarity index 100% rename from packages/tools/components-package/wdio.js rename to packages/base/config/wdio.conf.cjs diff --git a/packages/base/lib/generate-asset-parameters/index.js b/packages/base/lib/generate-asset-parameters/index.js index d3b0d8e744bd..c02db71c7214 100644 --- a/packages/base/lib/generate-asset-parameters/index.js +++ b/packages/base/lib/generate-asset-parameters/index.js @@ -1,5 +1,5 @@ -const fs = require('fs').promises; -const assets = require('@ui5/webcomponents-tools/assets-meta.js'); +import fs from "fs/promises"; +import assets from "@ui5/webcomponents-tools/assets-meta.js"; const fileContent = `const assetParameters = ${JSON.stringify(assets)}; diff --git a/packages/base/lib/generate-styles/index.js b/packages/base/lib/generate-styles/index.js index ecf137447b21..8583844c0dcf 100644 --- a/packages/base/lib/generate-styles/index.js +++ b/packages/base/lib/generate-styles/index.js @@ -1,6 +1,6 @@ -const fs = require('fs').promises; -const path = require('path'); -const CleanCSS = require('clean-css'); +import fs from 'fs/promises'; +import path from "path"; +import CleanCSS from "clean-css"; const generate = async () => { await fs.mkdir("src/generated/css/", {recursive: true}); diff --git a/packages/base/lib/generate-version-info/index.js b/packages/base/lib/generate-version-info/index.js index e47f1becf957..b7bd68d1a722 100644 --- a/packages/base/lib/generate-version-info/index.js +++ b/packages/base/lib/generate-version-info/index.js @@ -1,4 +1,4 @@ -const fs = require('fs').promises; +import fs from "fs/promises"; const generate = async () => { const version = JSON.parse(await fs.readFile("package.json")).version; diff --git a/packages/base/package-scripts.js b/packages/base/package-scripts.cjs similarity index 98% rename from packages/base/package-scripts.js rename to packages/base/package-scripts.cjs index 3dfa6cdae868..679031007c9e 100644 --- a/packages/base/package-scripts.js +++ b/packages/base/package-scripts.cjs @@ -60,7 +60,7 @@ const scripts = { test: { default: 'concurrently "nps test.wdio"', ssr: `mocha test/ssr`, - wdio: `node "${LIB}/test-runner/test-runner.js"` + wdio: `node "${LIB}/test-runner/test-runner.cjs"` }, }; diff --git a/packages/base/package.json b/packages/base/package.json index a1c920628269..435cf0beb308 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -4,6 +4,7 @@ "description": "UI5 Web Components: webcomponents.base", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", + "type": "module", "module": "index.js", "keywords": [ "openui5", diff --git a/packages/base/test/specs/ConfigurationChange.spec.js b/packages/base/test/specs/ConfigurationChange.spec.js index c214fa9a7117..2e980f36acfa 100644 --- a/packages/base/test/specs/ConfigurationChange.spec.js +++ b/packages/base/test/specs/ConfigurationChange.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Some configuration options can be changed at runtime", () => { before(async () => { diff --git a/packages/base/test/specs/ConfigurationScript.spec.js b/packages/base/test/specs/ConfigurationScript.spec.js index 8ae85eae1e1f..729f31a0ba22 100644 --- a/packages/base/test/specs/ConfigurationScript.spec.js +++ b/packages/base/test/specs/ConfigurationScript.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Configuration script has effect", () => { before(async () => { diff --git a/packages/base/test/specs/ConfigurationURL.spec.js b/packages/base/test/specs/ConfigurationURL.spec.js index 1ee13b9b8b20..89a282391ab4 100644 --- a/packages/base/test/specs/ConfigurationURL.spec.js +++ b/packages/base/test/specs/ConfigurationURL.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Some settings can be set via SAP UI URL params", () => { before(async () => { diff --git a/packages/base/test/specs/CustomTheme.spec.js b/packages/base/test/specs/CustomTheme.spec.js index 4eb223c2030c..cc4d3d4dae08 100644 --- a/packages/base/test/specs/CustomTheme.spec.js +++ b/packages/base/test/specs/CustomTheme.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Custom themes can be registered", () => { before(async () => { diff --git a/packages/base/test/specs/EventProvider.spec.js b/packages/base/test/specs/EventProvider.spec.js index 1c8ae580ffb8..836125e8d3cd 100644 --- a/packages/base/test/specs/EventProvider.spec.js +++ b/packages/base/test/specs/EventProvider.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Event provider attaches and detaches listeners properly", () => { before(async () => { diff --git a/packages/base/test/specs/StaticArea.spec.js b/packages/base/test/specs/StaticArea.spec.js index 5ba9aaed2c55..2abef25d28b9 100644 --- a/packages/base/test/specs/StaticArea.spec.js +++ b/packages/base/test/specs/StaticArea.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Some configuration options can be changed at runtime", () => { before(async () => { diff --git a/packages/base/test/specs/Theming.spec.js b/packages/base/test/specs/Theming.spec.js index 67e4d7f60a3a..094f7d73219f 100644 --- a/packages/base/test/specs/Theming.spec.js +++ b/packages/base/test/specs/Theming.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Theming works", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementInvalidation.js b/packages/base/test/specs/UI5ElementInvalidation.spec.js similarity index 99% rename from packages/base/test/specs/UI5ElementInvalidation.js rename to packages/base/test/specs/UI5ElementInvalidation.spec.js index 83800345d184..19cb0401f813 100644 --- a/packages/base/test/specs/UI5ElementInvalidation.js +++ b/packages/base/test/specs/UI5ElementInvalidation.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Invalidation works", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementLifecycle.js b/packages/base/test/specs/UI5ElementLifecycle.spec.js similarity index 98% rename from packages/base/test/specs/UI5ElementLifecycle.js rename to packages/base/test/specs/UI5ElementLifecycle.spec.js index 900ceb52525c..e4e5a5f4bba6 100644 --- a/packages/base/test/specs/UI5ElementLifecycle.js +++ b/packages/base/test/specs/UI5ElementLifecycle.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Lifecycle works", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js b/packages/base/test/specs/UI5ElementListenForChildPropChanges.js similarity index 98% rename from packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js rename to packages/base/test/specs/UI5ElementListenForChildPropChanges.js index 45135eacaf7f..6925903a2a3c 100644 --- a/packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js +++ b/packages/base/test/specs/UI5ElementListenForChildPropChanges.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Metadata slot invalidateOnChildChange works", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementMetadataExt.js b/packages/base/test/specs/UI5ElementMetadataExt.spec.js similarity index 96% rename from packages/base/test/specs/UI5ElementMetadataExt.js rename to packages/base/test/specs/UI5ElementMetadataExt.spec.js index 8a5848edcff5..bb2d727bd321 100644 --- a/packages/base/test/specs/UI5ElementMetadataExt.js +++ b/packages/base/test/specs/UI5ElementMetadataExt.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Metadata can be extended", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementPropertyValidation.js b/packages/base/test/specs/UI5ElementPropertyValidation.spec.js similarity index 91% rename from packages/base/test/specs/UI5ElementPropertyValidation.js rename to packages/base/test/specs/UI5ElementPropertyValidation.spec.js index fbac703b61de..084094323121 100644 --- a/packages/base/test/specs/UI5ElementPropertyValidation.js +++ b/packages/base/test/specs/UI5ElementPropertyValidation.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Properties can only have values, restricted to their types", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementPropsAndAttrs.spec.js b/packages/base/test/specs/UI5ElementPropsAndAttrs.spec.js index 523e0d4aa908..bcf6c6582a2d 100644 --- a/packages/base/test/specs/UI5ElementPropsAndAttrs.spec.js +++ b/packages/base/test/specs/UI5ElementPropsAndAttrs.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Properties and attributes convert to each other", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementShadowDOM.js b/packages/base/test/specs/UI5ElementShadowDOM.spec.js similarity index 95% rename from packages/base/test/specs/UI5ElementShadowDOM.js rename to packages/base/test/specs/UI5ElementShadowDOM.spec.js index 35453a1d4eaa..a75692a4ac5f 100644 --- a/packages/base/test/specs/UI5ElementShadowDOM.js +++ b/packages/base/test/specs/UI5ElementShadowDOM.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("The framework can define web components", () => { before(async () => { diff --git a/packages/base/test/specs/UI5ElementSlots.js b/packages/base/test/specs/UI5ElementSlots.spec.js similarity index 97% rename from packages/base/test/specs/UI5ElementSlots.js rename to packages/base/test/specs/UI5ElementSlots.spec.js index 95c977eac865..89a2cc6f168d 100644 --- a/packages/base/test/specs/UI5ElementSlots.js +++ b/packages/base/test/specs/UI5ElementSlots.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Slots work properly", () => { before(async () => { diff --git a/packages/base/test/specs/WithComplexTemplate.spec.js b/packages/base/test/specs/WithComplexTemplate.spec.js index c9e6ba2753de..e6cd171a0c82 100644 --- a/packages/base/test/specs/WithComplexTemplate.spec.js +++ b/packages/base/test/specs/WithComplexTemplate.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Theming works", () => { before(async () => { diff --git a/packages/fiori/package-scripts.js b/packages/fiori/package-scripts.js index 6bb0c4ea2a66..e50bf8babbd2 100644 --- a/packages/fiori/package-scripts.js +++ b/packages/fiori/package-scripts.js @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/components-package/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/components-package/nps.cjs"); const options = { port: 8081, diff --git a/packages/main/.npsrc.json b/packages/main/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/main/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/main/config/postcss.components/postcss.config.js b/packages/main/config/postcss.components/postcss.config.cjs similarity index 66% rename from packages/main/config/postcss.components/postcss.config.js rename to packages/main/config/postcss.components/postcss.config.cjs index b496f7835c1a..9ccf01441c54 100644 --- a/packages/main/config/postcss.components/postcss.config.js +++ b/packages/main/config/postcss.components/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.cjs"); diff --git a/packages/base/config/wdio.conf.js b/packages/main/config/postcss.themes/postcss.config.cjs similarity index 69% rename from packages/base/config/wdio.conf.js rename to packages/main/config/postcss.themes/postcss.config.cjs index ec46d09522f7..88f256aedb71 100644 --- a/packages/base/config/wdio.conf.js +++ b/packages/main/config/postcss.themes/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/wdio.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.cjs"); diff --git a/packages/main/config/postcss.themes/postcss.config.js b/packages/main/config/postcss.themes/postcss.config.js deleted file mode 100644 index f7b0dfe5e3e8..000000000000 --- a/packages/main/config/postcss.themes/postcss.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); diff --git a/packages/main/config/wdio.conf.js b/packages/main/config/wdio.conf.cjs similarity index 94% rename from packages/main/config/wdio.conf.js rename to packages/main/config/wdio.conf.cjs index 9aa03d7ed07b..07c80edae583 100644 --- a/packages/main/config/wdio.conf.js +++ b/packages/main/config/wdio.conf.cjs @@ -1,4 +1,4 @@ -const wdio = require("@ui5/webcomponents-tools/components-package/wdio.js"); +const wdio = require("@ui5/webcomponents-tools/components-package/wdio.cjs"); wdio.config.suites = { "suite1": [ diff --git a/packages/main/package-scripts.js b/packages/main/package-scripts.cjs similarity index 91% rename from packages/main/package-scripts.js rename to packages/main/package-scripts.cjs index a3af9d553574..7262b85c8117 100644 --- a/packages/main/package-scripts.js +++ b/packages/main/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/components-package/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/components-package/nps.cjs"); const options = { port: 8080, diff --git a/packages/main/package.json b/packages/main/package.json index 451a4918e21f..4e9f5ea4090e 100644 --- a/packages/main/package.json +++ b/packages/main/package.json @@ -5,6 +5,7 @@ "ui5": { "webComponentsPackage": true }, + "type": "module", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", "private": false, diff --git a/packages/main/test/pageobjects/DatePickerTestPage.js b/packages/main/test/pageobjects/DatePickerTestPage.js index 7749dd33dc95..7a350dc474b7 100644 --- a/packages/main/test/pageobjects/DatePickerTestPage.js +++ b/packages/main/test/pageobjects/DatePickerTestPage.js @@ -175,4 +175,4 @@ class DatePickerTestPage { } } -module.exports = new DatePickerTestPage(); +export default new DatePickerTestPage(); diff --git a/packages/main/test/pageobjects/DayPickerTestPage.js b/packages/main/test/pageobjects/DayPickerTestPage.js index 7095139979a6..fc8cdc8689db 100644 --- a/packages/main/test/pageobjects/DayPickerTestPage.js +++ b/packages/main/test/pageobjects/DayPickerTestPage.js @@ -15,4 +15,4 @@ class DayPickerTestHelper { } } -module.exports = new DayPickerTestHelper(); +export default new DayPickerTestHelper(); diff --git a/packages/main/test/pageobjects/ListTestPage.js b/packages/main/test/pageobjects/ListTestPage.js index dd44ce032ed7..5cfaca640fcf 100644 --- a/packages/main/test/pageobjects/ListTestPage.js +++ b/packages/main/test/pageobjects/ListTestPage.js @@ -16,4 +16,4 @@ class ListTestPage { } } -module.exports = new ListTestPage(); +export default new ListTestPage() diff --git a/packages/main/test/specs/Avatar.spec.js b/packages/main/test/specs/Avatar.spec.js index de802a078a3a..e623b01f2ae5 100644 --- a/packages/main/test/specs/Avatar.spec.js +++ b/packages/main/test/specs/Avatar.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("Avatar", () => { before(async () => { diff --git a/packages/main/test/specs/AvatarGroup.spec.js b/packages/main/test/specs/AvatarGroup.spec.js index 3a2164c73bc5..0256a795b65b 100644 --- a/packages/main/test/specs/AvatarGroup.spec.js +++ b/packages/main/test/specs/AvatarGroup.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; async function getResourceBundleTexts(keys) { return browser.executeAsync((keys, done) => { diff --git a/packages/main/test/specs/Badge.spec.js b/packages/main/test/specs/Badge.spec.js index c4bb7bf53241..704edc9f9afa 100644 --- a/packages/main/test/specs/Badge.spec.js +++ b/packages/main/test/specs/Badge.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Badge rendering", async () => { before(async () => { diff --git a/packages/main/test/specs/Breadcrumbs.spec.js b/packages/main/test/specs/Breadcrumbs.spec.js index da305c99ae6b..0c3612443b39 100644 --- a/packages/main/test/specs/Breadcrumbs.spec.js +++ b/packages/main/test/specs/Breadcrumbs.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const KEYS = { SHIFT: '\uE008', CTRL: '\uE009', diff --git a/packages/main/test/specs/BusyIndicator.spec.js b/packages/main/test/specs/BusyIndicator.spec.js index b36b821e1299..cbc9f7a71c20 100644 --- a/packages/main/test/specs/BusyIndicator.spec.js +++ b/packages/main/test/specs/BusyIndicator.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("BusyIndicator general interaction", () => { diff --git a/packages/main/test/specs/Button.spec.js b/packages/main/test/specs/Button.spec.js index b10317141710..3ef531104d06 100644 --- a/packages/main/test/specs/Button.spec.js +++ b/packages/main/test/specs/Button.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; -// +import { assert } from "chai"; describe("Button general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Calendar.spec.js b/packages/main/test/specs/Calendar.spec.js index 7d95c5ebc418..ce4d7b6eb159 100644 --- a/packages/main/test/specs/Calendar.spec.js +++ b/packages/main/test/specs/Calendar.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Calendar general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Card.spec.js b/packages/main/test/specs/Card.spec.js index bd85fbc002b4..8f48e313056f 100644 --- a/packages/main/test/specs/Card.spec.js +++ b/packages/main/test/specs/Card.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Card general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Carousel.spec.js b/packages/main/test/specs/Carousel.spec.js index 0b04040945ec..2f8e93282e2e 100644 --- a/packages/main/test/specs/Carousel.spec.js +++ b/packages/main/test/specs/Carousel.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("Carousel general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/CheckBox.spec.js b/packages/main/test/specs/CheckBox.spec.js index 0d45e54d6535..86b4f2b569f2 100644 --- a/packages/main/test/specs/CheckBox.spec.js +++ b/packages/main/test/specs/CheckBox.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("CheckBox general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/ColorPalette.spec.js b/packages/main/test/specs/ColorPalette.spec.js index 62d37bd51c77..16b7de97bac4 100644 --- a/packages/main/test/specs/ColorPalette.spec.js +++ b/packages/main/test/specs/ColorPalette.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ColorPalette interactions", () => { before(async () => { diff --git a/packages/main/test/specs/ColorPalettePopover.spec.js b/packages/main/test/specs/ColorPalettePopover.spec.js index 8f20374f66bc..7e4088df2c4c 100644 --- a/packages/main/test/specs/ColorPalettePopover.spec.js +++ b/packages/main/test/specs/ColorPalettePopover.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ColorPalette interactions", () => { before(async () => { diff --git a/packages/main/test/specs/ColorPicker.spec.js b/packages/main/test/specs/ColorPicker.spec.js index 0caf95487113..a6435ceb000e 100644 --- a/packages/main/test/specs/ColorPicker.spec.js +++ b/packages/main/test/specs/ColorPicker.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("Color Picker general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/ComboBox.mobile.spec.js b/packages/main/test/specs/ComboBox.mobile.spec.js index 2bbdf34bfce0..bb580996aac6 100644 --- a/packages/main/test/specs/ComboBox.mobile.spec.js +++ b/packages/main/test/specs/ComboBox.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Basic mobile picker rendering and interaction", () => { before(async () => { diff --git a/packages/main/test/specs/ComboBox.spec.js b/packages/main/test/specs/ComboBox.spec.js index 172b45a27bea..b9f994b4807d 100644 --- a/packages/main/test/specs/ComboBox.spec.js +++ b/packages/main/test/specs/ComboBox.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("General interaction", () => { diff --git a/packages/main/test/specs/Components.spec.js b/packages/main/test/specs/Components.spec.js index 2e2c898db437..d55356596386 100644 --- a/packages/main/test/specs/Components.spec.js +++ b/packages/main/test/specs/Components.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const assertBooleanProperty = async (el, prop) => { assert.notOk(await el.getProperty(prop), "the value should be false by default."); diff --git a/packages/main/test/specs/DatePicker.spec.js b/packages/main/test/specs/DatePicker.spec.js index eb1d9a132807..06bbed2cd18a 100644 --- a/packages/main/test/specs/DatePicker.spec.js +++ b/packages/main/test/specs/DatePicker.spec.js @@ -1,5 +1,5 @@ -const datepicker = require("../pageobjects/DatePickerTestPage"); -const assert = require("chai").assert; +import datepicker from "../pageobjects/DatePickerTestPage"; +import { assert } from "chai"; describe("Date Picker Tests", () => { before(async () => { diff --git a/packages/main/test/specs/DateRangePicker.spec.js b/packages/main/test/specs/DateRangePicker.spec.js index 3d7c3a0ffd89..67475fe3bce6 100644 --- a/packages/main/test/specs/DateRangePicker.spec.js +++ b/packages/main/test/specs/DateRangePicker.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("DateRangePicker general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/DateTimePicker.spec.js b/packages/main/test/specs/DateTimePicker.spec.js index 0a140821accf..832f11391a04 100644 --- a/packages/main/test/specs/DateTimePicker.spec.js +++ b/packages/main/test/specs/DateTimePicker.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const openPickerById = async (id, options) => { await browser.$(`#${id}`).scrollIntoView(); diff --git a/packages/main/test/specs/DayPicker.spec.js b/packages/main/test/specs/DayPicker.spec.js index 32771fe06efc..ae34288835c7 100644 --- a/packages/main/test/specs/DayPicker.spec.js +++ b/packages/main/test/specs/DayPicker.spec.js @@ -1,5 +1,5 @@ -const daypicker = require("../pageobjects/DayPickerTestPage"); -const assert = require("chai").assert; +import daypicker from "../pageobjects/DayPickerTestPage"; +import { assert } from "chai"; describe("Day Picker Tests", () => { before(async () => { diff --git a/packages/main/test/specs/Dialog.spec.js b/packages/main/test/specs/Dialog.spec.js index 2403207bf9df..405fc96104a6 100644 --- a/packages/main/test/specs/Dialog.spec.js +++ b/packages/main/test/specs/Dialog.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Dialog general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Eventing.spec.js b/packages/main/test/specs/Eventing.spec.js index 4a791f8c6ef5..4a36a935d886 100644 --- a/packages/main/test/specs/Eventing.spec.js +++ b/packages/main/test/specs/Eventing.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Eventing", () => { diff --git a/packages/main/test/specs/F6Test.spec.js b/packages/main/test/specs/F6Test.spec.js index 55480570e61f..e01292f79a75 100644 --- a/packages/main/test/specs/F6Test.spec.js +++ b/packages/main/test/specs/F6Test.spec.js @@ -1,5 +1,4 @@ -const assert = require("chai").assert; - +import { assert } from "chai"; describe("F6 Test", () => { describe("Forward", () => { diff --git a/packages/main/test/specs/FileUploader.spec.js b/packages/main/test/specs/FileUploader.spec.js index b95829f7dab5..d8ffcc5c4f4a 100644 --- a/packages/main/test/specs/FileUploader.spec.js +++ b/packages/main/test/specs/FileUploader.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("API", () => { before(async () => { diff --git a/packages/main/test/specs/FormSupport.spec.js b/packages/main/test/specs/FormSupport.spec.js index 7439aac5e37a..029d62b4a677 100644 --- a/packages/main/test/specs/FormSupport.spec.js +++ b/packages/main/test/specs/FormSupport.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Form support", () => { diff --git a/packages/main/test/specs/Icon.spec.js b/packages/main/test/specs/Icon.spec.js index 22cedce565a4..4f5bb0ec0247 100644 --- a/packages/main/test/specs/Icon.spec.js +++ b/packages/main/test/specs/Icon.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Icon general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Input.mobile.spec.js b/packages/main/test/specs/Input.mobile.spec.js index 49fdb2dd9ca6..e9ad7ca138c0 100644 --- a/packages/main/test/specs/Input.mobile.spec.js +++ b/packages/main/test/specs/Input.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Basic mobile picker rendering and interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Input.spec.js b/packages/main/test/specs/Input.spec.js index e04cec2ebfe3..65566f194d63 100644 --- a/packages/main/test/specs/Input.spec.js +++ b/packages/main/test/specs/Input.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Attributes propagation", () => { before(async () => { diff --git a/packages/main/test/specs/ItemNavigation.spec.js b/packages/main/test/specs/ItemNavigation.spec.js index fb7fa8d35c7e..b01b84d50954 100644 --- a/packages/main/test/specs/ItemNavigation.spec.js +++ b/packages/main/test/specs/ItemNavigation.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Item Navigation Tests", () => { before(async () => { diff --git a/packages/main/test/specs/Label.spec.js b/packages/main/test/specs/Label.spec.js index 71b71e78649a..2e420021f5fa 100644 --- a/packages/main/test/specs/Label.spec.js +++ b/packages/main/test/specs/Label.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("General API", () => { before(async () => { diff --git a/packages/main/test/specs/Link.spec.js b/packages/main/test/specs/Link.spec.js index e6615af08259..14950370a4e5 100644 --- a/packages/main/test/specs/Link.spec.js +++ b/packages/main/test/specs/Link.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const KEYS = { SHIFT: '\uE008', ALT: '\uE00A', diff --git a/packages/main/test/specs/List.spec.js b/packages/main/test/specs/List.spec.js index d36b36be6841..3c0e1d894fa8 100644 --- a/packages/main/test/specs/List.spec.js +++ b/packages/main/test/specs/List.spec.js @@ -1,5 +1,5 @@ -const list = require("../pageobjects/ListTestPage"); -const assert = require("chai").assert; +import list from "../pageobjects/ListTestPage"; +import { assert } from "chai"; /** * diff --git a/packages/main/test/specs/LitKeyFunction.spec.js b/packages/main/test/specs/LitKeyFunction.spec.js index c5c2f9f64101..3ce262a831ac 100644 --- a/packages/main/test/specs/LitKeyFunction.spec.js +++ b/packages/main/test/specs/LitKeyFunction.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Lit HTML key function for #each", async () => { before(async () => { diff --git a/packages/main/test/specs/Menu.spec.js b/packages/main/test/specs/Menu.spec.js index 5bdc3f74233a..5cbd7778cedc 100644 --- a/packages/main/test/specs/Menu.spec.js +++ b/packages/main/test/specs/Menu.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Menu interaction", () => { it("Menu opens after button click", async () => { diff --git a/packages/main/test/specs/MessageStrip.spec.js b/packages/main/test/specs/MessageStrip.spec.js index 17a035e5f22d..c8d630154192 100644 --- a/packages/main/test/specs/MessageStrip.spec.js +++ b/packages/main/test/specs/MessageStrip.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("MessageStrip general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/MultiComboBox.mobile.spec.js b/packages/main/test/specs/MultiComboBox.mobile.spec.js index e7e30293ea16..cde336b98467 100644 --- a/packages/main/test/specs/MultiComboBox.mobile.spec.js +++ b/packages/main/test/specs/MultiComboBox.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Basic interaction", () => { before(async () => { diff --git a/packages/main/test/specs/MultiComboBox.spec.js b/packages/main/test/specs/MultiComboBox.spec.js index 45263ec00c95..859e6faddd1c 100644 --- a/packages/main/test/specs/MultiComboBox.spec.js +++ b/packages/main/test/specs/MultiComboBox.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("MultiComboBox general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/MultiInput.mobile.spec.js b/packages/main/test/specs/MultiInput.mobile.spec.js index 5e356aa2df45..bafb3b4e487f 100644 --- a/packages/main/test/specs/MultiInput.mobile.spec.js +++ b/packages/main/test/specs/MultiInput.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const getTokenizerPopoverId = async (inputId) => { return await browser.executeAsync(async (inputId, done) => { diff --git a/packages/main/test/specs/MultiInput.spec.js b/packages/main/test/specs/MultiInput.spec.js index fe900023a484..c2cf2a8c1bbb 100644 --- a/packages/main/test/specs/MultiInput.spec.js +++ b/packages/main/test/specs/MultiInput.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const getTokenizerPopoverId = async (inputId) => { return await browser.executeAsync(async (inputId, done) => { diff --git a/packages/main/test/specs/Panel.spec.js b/packages/main/test/specs/Panel.spec.js index b6df7b96b4a0..9c1ec8ebaa33 100644 --- a/packages/main/test/specs/Panel.spec.js +++ b/packages/main/test/specs/Panel.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Panel general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Popover.spec.js b/packages/main/test/specs/Popover.spec.js index aec242e467ad..1eb17eec26bf 100644 --- a/packages/main/test/specs/Popover.spec.js +++ b/packages/main/test/specs/Popover.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Attributes propagation", () => { before(async () => { diff --git a/packages/main/test/specs/ProgressIndicator.spec.js b/packages/main/test/specs/ProgressIndicator.spec.js index 98bb02e55520..f8612777af02 100644 --- a/packages/main/test/specs/ProgressIndicator.spec.js +++ b/packages/main/test/specs/ProgressIndicator.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("API", () => { before(async () => { diff --git a/packages/main/test/specs/RTL.spec.js b/packages/main/test/specs/RTL.spec.js index f9cc4cf2e8de..5a2469c997c2 100644 --- a/packages/main/test/specs/RTL.spec.js +++ b/packages/main/test/specs/RTL.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("RTL", () => { it("language forces RTL, if RTL not specified", async () => { diff --git a/packages/main/test/specs/RadioButton.spec.js b/packages/main/test/specs/RadioButton.spec.js index 5c12c798e781..fea225470e77 100644 --- a/packages/main/test/specs/RadioButton.spec.js +++ b/packages/main/test/specs/RadioButton.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Rendering", () => { before(async () => { diff --git a/packages/main/test/specs/RangeSlider.spec.js b/packages/main/test/specs/RangeSlider.spec.js index 2bdea0af6ac6..601b4cb7c593 100644 --- a/packages/main/test/specs/RangeSlider.spec.js +++ b/packages/main/test/specs/RangeSlider.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Testing Range Slider interactions", () => { diff --git a/packages/main/test/specs/RatingIndicator.spec.js b/packages/main/test/specs/RatingIndicator.spec.js index 0524b0d8d55d..409051e24540 100644 --- a/packages/main/test/specs/RatingIndicator.spec.js +++ b/packages/main/test/specs/RatingIndicator.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Rating Indicator general interaction", () => { diff --git a/packages/main/test/specs/ResponsivePopover.mobile.spec.js b/packages/main/test/specs/ResponsivePopover.mobile.spec.js index ba6ac4b92ea5..76238cfd233a 100644 --- a/packages/main/test/specs/ResponsivePopover.mobile.spec.js +++ b/packages/main/test/specs/ResponsivePopover.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ResponsivePopover mobile general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/ResponsivePopover.spec.js b/packages/main/test/specs/ResponsivePopover.spec.js index 6d78e26ac3ad..4a7c660f68e1 100644 --- a/packages/main/test/specs/ResponsivePopover.spec.js +++ b/packages/main/test/specs/ResponsivePopover.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ResponsivePopover general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/SegmentedButton.spec.js b/packages/main/test/specs/SegmentedButton.spec.js index e012dbac8696..306aee346d0d 100644 --- a/packages/main/test/specs/SegmentedButton.spec.js +++ b/packages/main/test/specs/SegmentedButton.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("SegmentedButton general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Select.mobile.spec.js b/packages/main/test/specs/Select.mobile.spec.js index a5da2c762e9d..a0ad3ff017b6 100644 --- a/packages/main/test/specs/Select.mobile.spec.js +++ b/packages/main/test/specs/Select.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Select mobile general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Select.spec.js b/packages/main/test/specs/Select.spec.js index f9e6f98b5fb1..c9d1ec48ee3c 100644 --- a/packages/main/test/specs/Select.spec.js +++ b/packages/main/test/specs/Select.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; async function getResourceBundleTexts(keys) { return browser.executeAsync((keys, done) => { diff --git a/packages/main/test/specs/Slider.spec.js b/packages/main/test/specs/Slider.spec.js index 6f9a8919c95c..4f4168be196b 100644 --- a/packages/main/test/specs/Slider.spec.js +++ b/packages/main/test/specs/Slider.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Slider basic interactions", () => { diff --git a/packages/main/test/specs/SplitButton.spec.js b/packages/main/test/specs/SplitButton.spec.js index 40e1939f4d89..6b96e234f74f 100644 --- a/packages/main/test/specs/SplitButton.spec.js +++ b/packages/main/test/specs/SplitButton.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Split Button general interaction", () => { it("tests inner buttons design", async () => { diff --git a/packages/main/test/specs/StepInput.spec.js b/packages/main/test/specs/StepInput.spec.js index c7066f48b0da..936059676c4b 100644 --- a/packages/main/test/specs/StepInput.spec.js +++ b/packages/main/test/specs/StepInput.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Attributes propagation", () => { diff --git a/packages/main/test/specs/Switch.spec.js b/packages/main/test/specs/Switch.spec.js index ff7fd06647cf..9400c199053d 100644 --- a/packages/main/test/specs/Switch.spec.js +++ b/packages/main/test/specs/Switch.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Switch general interaction", async () => { before(async () => { diff --git a/packages/main/test/specs/TabContainer.mobile.spec.js b/packages/main/test/specs/TabContainer.mobile.spec.js index e0a254db266b..61860f61404b 100644 --- a/packages/main/test/specs/TabContainer.mobile.spec.js +++ b/packages/main/test/specs/TabContainer.mobile.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Mobile: TabContainer general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/TabContainer.spec.js b/packages/main/test/specs/TabContainer.spec.js index 66746c1b19a3..77fa8cceeaf6 100644 --- a/packages/main/test/specs/TabContainer.spec.js +++ b/packages/main/test/specs/TabContainer.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("TabContainer general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Table.spec.js b/packages/main/test/specs/Table.spec.js index 6d1f50dc4b6e..f83eebeb4a97 100644 --- a/packages/main/test/specs/Table.spec.js +++ b/packages/main/test/specs/Table.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Table general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/TableGrouping.spec.js b/packages/main/test/specs/TableGrouping.spec.js index df8019401a10..8645f5cfb7a5 100644 --- a/packages/main/test/specs/TableGrouping.spec.js +++ b/packages/main/test/specs/TableGrouping.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Table general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/TextArea.spec.js b/packages/main/test/specs/TextArea.spec.js index 91e72d648c74..efe24d6d67fa 100644 --- a/packages/main/test/specs/TextArea.spec.js +++ b/packages/main/test/specs/TextArea.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Attributes propagation", () => { before(async () => { diff --git a/packages/main/test/specs/TimePicker.spec.js b/packages/main/test/specs/TimePicker.spec.js index e5b5c181e731..a2588f752ce5 100644 --- a/packages/main/test/specs/TimePicker.spec.js +++ b/packages/main/test/specs/TimePicker.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("TimePicker general interaction", () => { it("input receives value in format pattern depending on the set language", async () => { diff --git a/packages/main/test/specs/Title.spec.js b/packages/main/test/specs/Title.spec.js index 257d8c5afdc1..262feebf6941 100644 --- a/packages/main/test/specs/Title.spec.js +++ b/packages/main/test/specs/Title.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Rendering", () => { before(async () => { diff --git a/packages/main/test/specs/Toast.spec.js b/packages/main/test/specs/Toast.spec.js index 9ab1d80cdf08..ab32dae4e14c 100644 --- a/packages/main/test/specs/Toast.spec.js +++ b/packages/main/test/specs/Toast.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Toast general interaction", () => { diff --git a/packages/main/test/specs/ToggleButton.spec.js b/packages/main/test/specs/ToggleButton.spec.js index ff9c9499a0ca..fe1a193c55d5 100644 --- a/packages/main/test/specs/ToggleButton.spec.js +++ b/packages/main/test/specs/ToggleButton.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ToggleButton general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/Tree.spec.js b/packages/main/test/specs/Tree.spec.js index 522151fb9e20..235b5d20e476 100644 --- a/packages/main/test/specs/Tree.spec.js +++ b/packages/main/test/specs/Tree.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; async function getItemsCount(selector) { const items = await getItems(selector); diff --git a/packages/main/test/specs/WheelSlider.spec.js b/packages/main/test/specs/WheelSlider.spec.js index 5aba818e521c..78ea1b022850 100644 --- a/packages/main/test/specs/WheelSlider.spec.js +++ b/packages/main/test/specs/WheelSlider.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Wheel Slider general interaction", () => { before(async () => { diff --git a/packages/main/test/specs/base/AriaLabelHelper.spec.js b/packages/main/test/specs/base/AriaLabelHelper.spec.js index fadf75230e38..91bd3e759a81 100644 --- a/packages/main/test/specs/base/AriaLabelHelper.spec.js +++ b/packages/main/test/specs/base/AriaLabelHelper.spec.js @@ -1,4 +1,4 @@ -const assert = require('chai').assert; +import { assert } from "chai"; describe('AriaLabelHelper', () => { before(async () => { diff --git a/packages/main/test/specs/base/DOMObserver.spec.js b/packages/main/test/specs/base/DOMObserver.spec.js index 07f9ec61c4b7..5e8e22814473 100644 --- a/packages/main/test/specs/base/DOMObserver.spec.js +++ b/packages/main/test/specs/base/DOMObserver.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("DOMObserver", () => { before(async () => { diff --git a/packages/main/test/specs/base/InvisibleMessage.spec.js b/packages/main/test/specs/base/InvisibleMessage.spec.js index 22bf9aadf462..eb519e126707 100644 --- a/packages/main/test/specs/base/InvisibleMessage.spec.js +++ b/packages/main/test/specs/base/InvisibleMessage.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("InvisibleMessage", () => { before(async () => { diff --git a/packages/tools/components-package/nps.js b/packages/tools/components-package/nps.cjs similarity index 94% rename from packages/tools/components-package/nps.js rename to packages/tools/components-package/nps.cjs index 6553dfe2672f..0c9d25815c36 100644 --- a/packages/tools/components-package/nps.js +++ b/packages/tools/components-package/nps.cjs @@ -30,15 +30,15 @@ const getScripts = (options) => { } let viteConfig; - if (fs.existsSync("config/vite.config.js")) { + if (fs.existsSync("config/vite.config.cjs")) { // old project setup where config file is in separate folder - viteConfig = "-c config/vite.config.js"; - } else if (fs.existsSync("vite.config.js")) { + viteConfig = "-c config/vite.config.cjs"; + } else if (fs.existsSync("vite.config.cjs")) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; + viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; } let eslintConfig; @@ -115,9 +115,9 @@ const getScripts = (options) => { i18n: 'chokidar "src/i18n/messagebundle.properties" -c "nps build.i18n.defaultsjs"' }, start: "nps prepare watch.devServer", - test: `node "${LIB}/test-runner/test-runner.js"`, - "test-suite-1": `node "${LIB}/test-runner/test-runner.js" --suite suite1`, - "test-suite-2": `node "${LIB}/test-runner/test-runner.js" --suite suite2`, + test: `node "${LIB}/test-runner/test-runner.cjs"`, + "test-suite-1": `node "${LIB}/test-runner/test-runner.cjs" --suite suite1`, + "test-suite-2": `node "${LIB}/test-runner/test-runner.cjs" --suite suite2`, startWithScope: "nps scope.prepare scope.watchWithBundle", scope: { prepare: "nps scope.lint prepare scope.testPages", diff --git a/packages/tools/components-package/postcss.components.js b/packages/tools/components-package/postcss.components.cjs similarity index 100% rename from packages/tools/components-package/postcss.components.js rename to packages/tools/components-package/postcss.components.cjs diff --git a/packages/tools/components-package/postcss.themes.js b/packages/tools/components-package/postcss.themes.cjs similarity index 100% rename from packages/tools/components-package/postcss.themes.js rename to packages/tools/components-package/postcss.themes.cjs diff --git a/packages/tools/components-package/vite.config.js b/packages/tools/components-package/vite.config.cjs similarity index 93% rename from packages/tools/components-package/vite.config.js rename to packages/tools/components-package/vite.config.cjs index 34b0d418c936..fae8d0825bef 100644 --- a/packages/tools/components-package/vite.config.js +++ b/packages/tools/components-package/vite.config.cjs @@ -1,6 +1,6 @@ // vite.config.js const { defineConfig } = require('vite'); -const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.js"); +const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.cjs"); module.exports = defineConfig(async () => { return { diff --git a/packages/tools/components-package/wdio.cjs b/packages/tools/components-package/wdio.cjs new file mode 100644 index 000000000000..f62ca04b3544 --- /dev/null +++ b/packages/tools/components-package/wdio.cjs @@ -0,0 +1,393 @@ +exports.config = { + // + // ==================== + // Runner Configuration + // ==================== + // + // WebdriverIO allows it to run your tests in arbitrary locations (e.g. locally or + // on a remote machine). + runner: 'local', + + // + // ================== + // Specify Test Files + // ================== + // Define which test specs should run. The pattern is relative to the directory + // from which `wdio` was called. Notice that, if you are calling `wdio` from an + // NPM script (see https://docs.npmjs.com/cli/run-script) then the current working + // directory is where your package.json resides, so `wdio` will be called from there. + // + specs: [ + './test/specs/**/*.js' + ], + // Patterns to exclude. + exclude: [ + // 'path/to/excluded/files' + ], + // + // ============ + // Capabilities + // ============ + // Define your capabilities here. WebdriverIO can run multiple capabilities at the same + // time. Depending on the number of capabilities, WebdriverIO launches several test + // sessions. Within your capabilities you can overwrite the spec and exclude options in + // order to group specific specs to a specific capability. + // + // First, you can define how many instances should be started at the same time. Let's + // say you have 3 different capabilities (Chrome, Firefox, and Safari) and you have + // set maxInstances to 1; wdio will spawn 3 processes. Therefore, if you have 10 spec + // files and you set maxInstances to 10, all spec files will get tested at the same time + // and 30 processes will get spawned. The property handles how many capabilities + // from the same test should run tests. + // + maxInstances: 10, + // + // If you have trouble getting all important capabilities together, check out the + // Sauce Labs platform configurator - a great tool to configure your capabilities: + // https://docs.saucelabs.com/reference/platforms-configurator + // + capabilities: [{ + // maxInstances can get overwritten per capability. So if you have an in-house Selenium + // grid with only 5 firefox instances available you can make sure that not more than + // 5 instances get started at a time. + maxInstances: 5, + // + browserName: 'chrome', + 'goog:chromeOptions': { + // to run chrome headless the following flags are required + // (see https://developers.google.com/web/updates/2017/04/headless-chrome) + args: ['--headless', '--disable-gpu'], + // args: ['--disable-gpu'], + } + }], + // + // port to find chromedriver + port: 9515, // default + // =================== + // Test Configurations + // =================== + // Define all options that are relevant for the WebdriverIO instance here + // + // Level of logging verbosity: trace | debug | info | warn | error + logLevel: 'error', + // + // Warns when a deprecated command is used + deprecationWarnings: true, + // + // If you only want to run your tests until a specific amount of tests have failed use + // bail (default is 0 - don't bail, run all tests). + bail: 0, + // + // Set a base URL in order to shorten url command calls. If your `url` parameter starts + // with `/`, the base url gets prepended, not including the path portion of your baseUrl. + // If your `url` parameter starts without a scheme or `/` (like `some/path`), the base url + // gets prepended directly. + baseUrl: 'http://localhost:4567', // This is important since WDIO 7+ does not accept an empty string for baseUrl + path: '', + // + // Default timeout for all waitFor* commands. + waitforTimeout: 10000, + // + // Default timeout in milliseconds for request + // if Selenium Grid doesn't send response + connectionRetryTimeout: 90000, + // + // Default request retries count + connectionRetryCount: 3, + // + // Test runner services + // Services take over a specific job you don't want to take care of. They enhance + // your test setup with almost no effort. Unlike plugins, they don't add new + // commands. Instead, they hook themselves up into the test process. + services: ['chromedriver', 'devtools', + ['static-server', { + folders: [ + { mount: '/', path: './dist' }, + ], + port: '4567', + }], + ], + // options + chromeDriverArgs: ['--port=9515'], // default + // Framework you want to run your specs with. + // The following are supported: Mocha, Jasmine, and Cucumber + // see also: https://webdriver.io/docs/frameworks.html + // + // Make sure you have the wdio adapter package for the specific framework installed + // before running any tests. + framework: 'mocha', + // + // Test reporter for stdout. + // The only one supported by default is 'dot' + // see also: https://webdriver.io/docs/dot-reporter.html + reporters: ['dot', 'spec'], + + // + // Options to be passed to Mocha. + // See the full list at http://mochajs.org/ + mochaOpts: { + ui: 'bdd', + timeout: 60000 + }, + // + // ===== + // Hooks + // ===== + // WebdriverIO provides several hooks you can use to interfere with the test process in order to enhance + // it and to build services around it. You can either apply a single function or an array of + // methods to it. If one of them returns with a promise, WebdriverIO will wait until that promise got + // resolved to continue. + /** + * Gets executed once before all workers get launched. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + */ + // onPrepare: function (config, capabilities) { + // }, + /** + * Gets executed just before initialising the webdriver session and test framework. It allows you + * to manipulate configurations depending on the capability or spec. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + */ + // beforeSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed before test execution begins. At this point you can access to all global + * variables like `browser`. It is the perfect place to define custom commands. + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + */ + before: async function (capabilities, specs) { + await browser.addCommand("isFocusedDeep", async function () { + return browser.executeAsync(function (elem, done) { + let activeElement = document.activeElement; + + while (activeElement.shadowRoot) { + if (activeElement.shadowRoot.activeElement) { + activeElement = activeElement.shadowRoot.activeElement; + } else { + break; + } + } + done(elem === activeElement); + }, this); + }, true); + + await browser.addCommand("isFocusedDeepElement", async function (element) { + return browser.executeAsync(function (elem, element, done) { + let activeElement = document.activeElement; + + while (activeElement.shadowRoot) { + if (activeElement.shadowRoot.activeElement) { + activeElement = activeElement.shadowRoot.activeElement; + } else { + break; + } + } + done(element === activeElement); + }, this, element); + }, true); + + await browser.addCommand("setProperty", async function(property, value) { + return browser.executeAsync((elem, property, value, done) => { + elem[property] = value; + done(); + }, this, property, value); + }, true); + + await browser.addCommand("setAttribute", async function(attribute, value) { + return browser.executeAsync((elem, attribute, value, done) => { + elem.setAttribute(attribute, value); + done(); + }, this, attribute, value); + }, true); + + await browser.addCommand("removeAttribute", async function(attribute) { + return browser.executeAsync((elem, attribute, done) => { + elem.removeAttribute(attribute); + done(); + }, this, attribute); + }, true); + + await browser.addCommand("hasClass", async function(className) { + return browser.executeAsync((elem, className, done) => { + done(elem.classList.contains(className)); + }, this, className); + }, true); + + await browser.addCommand("hasAttribute", async function(attrName) { + return browser.executeAsync((elem, attrName, done) => { + done(elem.hasAttribute(attrName)); + }, this, attrName); + }, true); + + await browser.addCommand("getStaticAreaItemClassName", async function(selector) { + return browser.executeAsync(async (selector, done) => { + const staticAreaItem = await document.querySelector(selector).getStaticAreaItemDomRef(); + done(staticAreaItem.host.classList[0]); + }, selector); + }, false); + + await browser.addLocatorStrategy('activeElement', (selector) => { + return document.querySelector(selector).shadowRoot.activeElement; + }); + }, + /** + * Runs before a WebdriverIO command gets executed. + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + */ + beforeCommand: async function (commandName, args) { + const waitFor = [ + "$", + "$$", + "getAttribute", + "hasAttribute", // custom + "getCSSProperty", + "getHTML", + "getProperty", + "getSize", + "getStaticAreaItemClassName", // custom + "getText", + "getValue", + "hasClass", // custom + "isDisplayed", + "isDisplayedInViewport", + "isEnabled", + "isExisting", + "isFocused", + "isFocusedDeep", // custom + "isFocusedDeepElement", // custom + "shadow$", + "shadow$$", + ]; + if (waitFor.includes(commandName)) { + await browser.executeAsync(function (done) { + window["sap-ui-webcomponents-bundle"].renderFinished().then(done); + }); + } + }, + + /** + * Hook that gets executed before the suite starts + * @param {Object} suite suite details + */ + // beforeSuite: function (suite) { + // }, + /** + * Function to be executed before a test (in Mocha/Jasmine) or a step (in Cucumber) starts. + * @param {Object} test test details + */ + // beforeTest: function (test) { + // }, + /** + * Hook that gets executed _before_ a hook within the suite starts (e.g. runs before calling + * beforeEach in Mocha) + */ + // beforeHook: function () { + // }, + /** + * Hook that gets executed _after_ a hook within the suite starts (e.g. runs after calling + * afterEach in Mocha) + */ + // afterHook: function () { + // }, + /** + * Function to be executed after a test (in Mocha/Jasmine) or a step (in Cucumber) starts. + * @param {Object} test test details + */ + // afterTest: function (test) { + // }, + /** + * Hook that gets executed after the suite has ended + * @param {Object} suite suite details + */ + // afterSuite: function (suite) { + // }, + + /** + * Runs after a WebdriverIO command gets executed + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + * @param {Number} result 0 - command success, 1 - command error + * @param {Object} error error object if any + */ + afterCommand: async function (commandName, args, result, error) { + + // url -> set configuration first + if (commandName === "url" && !args[0].includes("do-not-change-configuration")) { + await browser.executeAsync(function(done) { + window["sap-ui-webcomponents-bundle"].configuration.setNoConflict(true); + done(); + }); + } + + const waitFor = [ + "addValue", + "clearValue", + "click", + "doubleClick", + "dragAndDrop", + "pause", + "removeAttribute", // custom + "scrollIntoView", + "setAttribute", // custom + "setProperty", // custom + "setValue", + "setWindowSize", + "touchAction", + "url", + ]; + + const waitForWithDelay = [ + "keys", + ]; + + if (waitFor.includes(commandName)) { + await browser.executeAsync(function (done) { + window["sap-ui-webcomponents-bundle"].renderFinished().then(done); + }); + } else if (waitForWithDelay.includes(commandName)) { + await browser.executeAsync(function (done) { + setTimeout(() => { + window["sap-ui-webcomponents-bundle"].renderFinished().then(done); + }, 10); + }); + } + }, + /** + * Gets executed after all tests are done. You still have access to all global variables from + * the test. + * @param {Number} result 0 - test pass, 1 - test fail + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // after: function (result, capabilities, specs) { + // }, + /** + * Gets executed right after terminating the webdriver session. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // afterSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed after all workers got shut down and the process is about to exit. + * @param {Object} exitCode 0 - success, 1 - fail + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {} results object containing test results + */ + // onComplete: function(exitCode, config, capabilities, results) { + // }, + /** + * Gets executed when a refresh happens. + * @param {String} oldSessionId session ID of the old session + * @param {String} newSessionId session ID of the new session + */ + //onReload: function(oldSessionId, newSessionId) { + //} +} \ No newline at end of file diff --git a/packages/tools/lib/dev-server/virtual-index-html-plugin.js b/packages/tools/lib/dev-server/virtual-index-html-plugin.cjs similarity index 100% rename from packages/tools/lib/dev-server/virtual-index-html-plugin.js rename to packages/tools/lib/dev-server/virtual-index-html-plugin.cjs diff --git a/packages/tools/lib/test-runner/test-runner.js b/packages/tools/lib/test-runner/test-runner.cjs similarity index 97% rename from packages/tools/lib/test-runner/test-runner.js rename to packages/tools/lib/test-runner/test-runner.cjs index 5252c1b5deaa..c6d54a70d63c 100644 --- a/packages/tools/lib/test-runner/test-runner.js +++ b/packages/tools/lib/test-runner/test-runner.cjs @@ -58,6 +58,6 @@ if (process.argv.length > 3) { } // run wdio with calculated parameters -const cmd = `yarn cross-env WDIO_LOG_LEVEL=error wdio config/wdio.conf.js ${spec} ${baseUrl} ${restParams}`; +const cmd = `yarn cross-env WDIO_LOG_LEVEL=error wdio config/wdio.conf.cjs ${spec} ${baseUrl} ${restParams}`; console.log(`executing: ${cmd}`); child_process.execSync(cmd, {stdio: 'inherit'}); From 31702a8f7ec2aa7c02c33a95c750bf27b918d9d1 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 1 Mar 2023 17:07:49 +0200 Subject: [PATCH 23/42] chore: add fiori package --- packages/fiori/.npsrc.json | 3 +++ .../{postcss.config.js => postcss.config.cjs} | 2 +- .../postcss.themes/{postcss.config.js => postcss.config.cjs} | 2 +- packages/fiori/config/{wdio.conf.js => wdio.conf.cjs} | 2 +- packages/fiori/{package-scripts.js => package-scripts.cjs} | 0 packages/fiori/package.json | 1 + packages/fiori/test/specs/BarcodeScannerDialog.spec.js | 2 +- packages/fiori/test/specs/Components.spec.js | 2 +- packages/fiori/test/specs/DynamicSideContent.spec.js | 2 +- packages/fiori/test/specs/F6Handling.spec.js | 2 +- packages/fiori/test/specs/FCL.spec.js | 2 +- packages/fiori/test/specs/IllustratedMessage.spec.js | 2 +- packages/fiori/test/specs/MediaGallery.spec.js | 2 +- packages/fiori/test/specs/NotificationList.spec.js | 2 +- packages/fiori/test/specs/Page.spec.js | 2 +- packages/fiori/test/specs/ProductSwitch.spec.js | 2 +- packages/fiori/test/specs/ProductSwitchItem.spec.js | 2 +- packages/fiori/test/specs/ShellBar.spec.js | 2 +- packages/fiori/test/specs/SideNavigation.spec.js | 2 +- packages/fiori/test/specs/Timeline.spec.js | 2 +- packages/fiori/test/specs/UploadCollection.spec.js | 2 +- packages/fiori/test/specs/ViewSettingsDialog.spec.js | 2 +- packages/fiori/test/specs/Wizard.spec.js | 2 +- 23 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 packages/fiori/.npsrc.json rename packages/fiori/config/postcss.components/{postcss.config.js => postcss.config.cjs} (66%) rename packages/fiori/config/postcss.themes/{postcss.config.js => postcss.config.cjs} (69%) rename packages/fiori/config/{wdio.conf.js => wdio.conf.cjs} (78%) rename packages/fiori/{package-scripts.js => package-scripts.cjs} (100%) diff --git a/packages/fiori/.npsrc.json b/packages/fiori/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/fiori/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/fiori/config/postcss.components/postcss.config.js b/packages/fiori/config/postcss.components/postcss.config.cjs similarity index 66% rename from packages/fiori/config/postcss.components/postcss.config.js rename to packages/fiori/config/postcss.components/postcss.config.cjs index b496f7835c1a..9ccf01441c54 100644 --- a/packages/fiori/config/postcss.components/postcss.config.js +++ b/packages/fiori/config/postcss.components/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.cjs"); diff --git a/packages/fiori/config/postcss.themes/postcss.config.js b/packages/fiori/config/postcss.themes/postcss.config.cjs similarity index 69% rename from packages/fiori/config/postcss.themes/postcss.config.js rename to packages/fiori/config/postcss.themes/postcss.config.cjs index f7b0dfe5e3e8..88f256aedb71 100644 --- a/packages/fiori/config/postcss.themes/postcss.config.js +++ b/packages/fiori/config/postcss.themes/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.cjs"); diff --git a/packages/fiori/config/wdio.conf.js b/packages/fiori/config/wdio.conf.cjs similarity index 78% rename from packages/fiori/config/wdio.conf.js rename to packages/fiori/config/wdio.conf.cjs index ec46d09522f7..f870909c1ef4 100644 --- a/packages/fiori/config/wdio.conf.js +++ b/packages/fiori/config/wdio.conf.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/wdio.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/wdio.cjs"); diff --git a/packages/fiori/package-scripts.js b/packages/fiori/package-scripts.cjs similarity index 100% rename from packages/fiori/package-scripts.js rename to packages/fiori/package-scripts.cjs diff --git a/packages/fiori/package.json b/packages/fiori/package.json index 8d3ad3b5a7c3..a8c9da2860c4 100644 --- a/packages/fiori/package.json +++ b/packages/fiori/package.json @@ -5,6 +5,7 @@ "ui5": { "webComponentsPackage": true }, + "type": "module", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", "private": false, diff --git a/packages/fiori/test/specs/BarcodeScannerDialog.spec.js b/packages/fiori/test/specs/BarcodeScannerDialog.spec.js index ec99484da9a4..c24a19db7c75 100644 --- a/packages/fiori/test/specs/BarcodeScannerDialog.spec.js +++ b/packages/fiori/test/specs/BarcodeScannerDialog.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("BarcodeScannerDialog Behavior", () => { before(async () => { diff --git a/packages/fiori/test/specs/Components.spec.js b/packages/fiori/test/specs/Components.spec.js index acee6d6cb981..58d2bfc0b759 100644 --- a/packages/fiori/test/specs/Components.spec.js +++ b/packages/fiori/test/specs/Components.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; const assertBooleanProperty = async (el, prop) => { assert.strictEqual(await el.getProperty(prop), false, "the value should be false by default."); diff --git a/packages/fiori/test/specs/DynamicSideContent.spec.js b/packages/fiori/test/specs/DynamicSideContent.spec.js index a9845e8d34e2..b44d9c78a019 100644 --- a/packages/fiori/test/specs/DynamicSideContent.spec.js +++ b/packages/fiori/test/specs/DynamicSideContent.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("'sideContentPosition' property: ", () => { it("set to 'End'", async () => { diff --git a/packages/fiori/test/specs/F6Handling.spec.js b/packages/fiori/test/specs/F6Handling.spec.js index 253566f9a884..bfff3fc6d751 100644 --- a/packages/fiori/test/specs/F6Handling.spec.js +++ b/packages/fiori/test/specs/F6Handling.spec.js @@ -1,4 +1,4 @@ -// const assert = require("chai").assert; +// import { assert } from "chai"; // // describe("Button general interaction", () => { diff --git a/packages/fiori/test/specs/FCL.spec.js b/packages/fiori/test/specs/FCL.spec.js index 3964e79e0827..3cf5f2ea63f3 100644 --- a/packages/fiori/test/specs/FCL.spec.js +++ b/packages/fiori/test/specs/FCL.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("FlexibleColumnLayout Behavior", () => { diff --git a/packages/fiori/test/specs/IllustratedMessage.spec.js b/packages/fiori/test/specs/IllustratedMessage.spec.js index dc60ea1759ba..518ea125ac1c 100644 --- a/packages/fiori/test/specs/IllustratedMessage.spec.js +++ b/packages/fiori/test/specs/IllustratedMessage.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("IllustratedMessage 'size' property", () => { before(async () => { diff --git a/packages/fiori/test/specs/MediaGallery.spec.js b/packages/fiori/test/specs/MediaGallery.spec.js index 4701cfa036b1..e79cc2dd18b5 100644 --- a/packages/fiori/test/specs/MediaGallery.spec.js +++ b/packages/fiori/test/specs/MediaGallery.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("MediaGallery general interaction", () => { diff --git a/packages/fiori/test/specs/NotificationList.spec.js b/packages/fiori/test/specs/NotificationList.spec.js index 6156965d72dd..51f86e279558 100644 --- a/packages/fiori/test/specs/NotificationList.spec.js +++ b/packages/fiori/test/specs/NotificationList.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Notification List Item Tests", () => { before(async () => { diff --git a/packages/fiori/test/specs/Page.spec.js b/packages/fiori/test/specs/Page.spec.js index 71c76d768b1d..4ef7a2158588 100644 --- a/packages/fiori/test/specs/Page.spec.js +++ b/packages/fiori/test/specs/Page.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Page general interaction", () => { before(async () => { diff --git a/packages/fiori/test/specs/ProductSwitch.spec.js b/packages/fiori/test/specs/ProductSwitch.spec.js index c8f5c2e313bc..f34f161f062e 100644 --- a/packages/fiori/test/specs/ProductSwitch.spec.js +++ b/packages/fiori/test/specs/ProductSwitch.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ProductSwitch general interaction", async () => { before(async () => { diff --git a/packages/fiori/test/specs/ProductSwitchItem.spec.js b/packages/fiori/test/specs/ProductSwitchItem.spec.js index c47fb790ec16..fc4eac76be3f 100644 --- a/packages/fiori/test/specs/ProductSwitchItem.spec.js +++ b/packages/fiori/test/specs/ProductSwitchItem.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ProductSwitchItem general interaction", async () => { before(async () => { diff --git a/packages/fiori/test/specs/ShellBar.spec.js b/packages/fiori/test/specs/ShellBar.spec.js index 94744abdae94..202eca8c857c 100644 --- a/packages/fiori/test/specs/ShellBar.spec.js +++ b/packages/fiori/test/specs/ShellBar.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; HANDLE_RESIZE_DEBOUNCE_RATE_WAIT = 250; // ms const getOverflowPopover = async id => { diff --git a/packages/fiori/test/specs/SideNavigation.spec.js b/packages/fiori/test/specs/SideNavigation.spec.js index 5b8bed7fa5fd..5026e1394e3b 100644 --- a/packages/fiori/test/specs/SideNavigation.spec.js +++ b/packages/fiori/test/specs/SideNavigation.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; async function getTreeItemsInPopover() { const staticAreaItemClassName = await browser.getStaticAreaItemClassName("#sn1"); diff --git a/packages/fiori/test/specs/Timeline.spec.js b/packages/fiori/test/specs/Timeline.spec.js index 887673871a91..b3c868c7a683 100644 --- a/packages/fiori/test/specs/Timeline.spec.js +++ b/packages/fiori/test/specs/Timeline.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Timeline general interaction", () => { before(async () => { diff --git a/packages/fiori/test/specs/UploadCollection.spec.js b/packages/fiori/test/specs/UploadCollection.spec.js index 38132fd86e60..45f89cd4474e 100644 --- a/packages/fiori/test/specs/UploadCollection.spec.js +++ b/packages/fiori/test/specs/UploadCollection.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("UploadCollection", () => { describe("Rendering", () => { diff --git a/packages/fiori/test/specs/ViewSettingsDialog.spec.js b/packages/fiori/test/specs/ViewSettingsDialog.spec.js index a6b331458d10..623b3e04eba8 100644 --- a/packages/fiori/test/specs/ViewSettingsDialog.spec.js +++ b/packages/fiori/test/specs/ViewSettingsDialog.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("ViewSettingsDialog general interaction", () => { before(async () => { diff --git a/packages/fiori/test/specs/Wizard.spec.js b/packages/fiori/test/specs/Wizard.spec.js index e10269398bc2..0a24d5045467 100644 --- a/packages/fiori/test/specs/Wizard.spec.js +++ b/packages/fiori/test/specs/Wizard.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Wizard general interaction", () => { before(async () => { From 198730df20cd758fbed818fb6ca9b1ee825dc4e7 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 1 Mar 2023 17:41:41 +0200 Subject: [PATCH 24/42] chore: sidenavigation tests --- packages/fiori/test/specs/SideNavigation.spec.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/fiori/test/specs/SideNavigation.spec.js b/packages/fiori/test/specs/SideNavigation.spec.js index 5026e1394e3b..8ca3ac966179 100644 --- a/packages/fiori/test/specs/SideNavigation.spec.js +++ b/packages/fiori/test/specs/SideNavigation.spec.js @@ -191,14 +191,14 @@ describe("Component Behavior", () => { assert.strictEqual(await sideNavigationRoot.getAttribute("role"), "navigation", "Role of the SideNavigation root element is correctly set"); - roleDescription = await browser.executeAsync(done => { + let roleDescription = await browser.executeAsync(done => { const sn = document.getElementById("sn1"); done(sn.constructor.i18nBundle.getText(window["sap-ui-webcomponents-bundle"].defaultTexts.SIDE_NAVIGATION_LIST_ARIA_ROLE_DESC)); }); assert.strictEqual(await sideNavigationTree.getAttribute("aria-roledescription"), roleDescription, "Role description of the SideNavigation tree element is correctly set"); // items - roleDescriptionItem = await browser.executeAsync(done => { + let roleDescriptionItem = await browser.executeAsync(done => { const sn = document.getElementById("sn1"); done(sn.constructor.i18nBundle.getText(window["sap-ui-webcomponents-bundle"].defaultTexts.SIDE_NAVIGATION_LIST_ITEMS_ARIA_ROLE_DESC)); }); @@ -230,14 +230,14 @@ describe("Component Behavior", () => { assert.strictEqual(await sideNavigationRoot.getAttribute("role"), "navigation", "Role of the SideNavigation root element is correctly set"); - roleDescription = await browser.executeAsync(done => { + let roleDescription = await browser.executeAsync(done => { const sn = document.getElementById("sn1"); done(sn.constructor.i18nBundle.getText(window["sap-ui-webcomponents-bundle"].defaultTexts.SIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC)); }); assert.strictEqual(await sideNavigationTree.getAttribute("aria-roledescription"), roleDescription, "Role description of the SideNavigation tree element is correctly set"); // items - roleDescriptionItem = await browser.executeAsync(done => { + let roleDescriptionItem = await browser.executeAsync(done => { const sn = document.getElementById("sn1"); done(sn.constructor.i18nBundle.getText(window["sap-ui-webcomponents-bundle"].defaultTexts.SIDE_NAVIGATION_COLLAPSED_LIST_ITEMS_ARIA_ROLE_DESC)); }); From f9c785f1decf41304d96a52d4fe39a18746b2f2d Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 09:58:50 +0200 Subject: [PATCH 25/42] chore: shellbar tests --- packages/fiori/test/specs/ShellBar.spec.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/fiori/test/specs/ShellBar.spec.js b/packages/fiori/test/specs/ShellBar.spec.js index 202eca8c857c..1cc2d5aad3ee 100644 --- a/packages/fiori/test/specs/ShellBar.spec.js +++ b/packages/fiori/test/specs/ShellBar.spec.js @@ -1,5 +1,5 @@ import { assert } from "chai"; -HANDLE_RESIZE_DEBOUNCE_RATE_WAIT = 250; // ms +const HANDLE_RESIZE_DEBOUNCE_RATE_WAIT = 250; // ms const getOverflowPopover = async id => { const staticAreaItemClassName = await browser.getStaticAreaItemClassName(`#${id}`); @@ -8,18 +8,16 @@ const getOverflowPopover = async id => { const getOverflowChildProp = async (id, pos, prop) => { const popover = await getOverflowPopover(id); + const items = await popover.$$("ui5-li"); - return browser.executeAsync((popover, pos, prop, done) => { - done([...popover.querySelectorAll("ui5-li")][pos].getAttribute(prop)); - }, popover, pos, prop); + return [...items][pos].getAttribute(prop); } const getCustomActionProp = async (id, pos, prop) => { const shellbar = await browser.$(`#${id}`); + const items = await shellbar.shadowRoot.querySelectorAll(".ui5-shellbar-custom-item"); - return browser.executeAsync((shellbar, pos, prop, done) => { - done([...shellbar.shadowRoot.querySelectorAll(".ui5-shellbar-custom-item")][pos].getAttribute(prop)); - }, shellbar, pos, prop); + return [...items][pos].getAttribute(prop); } describe("Component Behavior", () => { @@ -54,7 +52,7 @@ describe("Component Behavior", () => { const logoDOM = await sb.shadow$(".ui5-shellbar-logo"); - // assert + // assertHANDLE_RESIZE_DEBOUNCE_RATE_WAIT assert.strictEqual(await logoDOM.getAttribute("role"), "link", "Logo has the correct custom role."); }); From bb665f8fca9a3eecb2cf150cf26fc1edde87866c Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 12:09:49 +0200 Subject: [PATCH 26/42] chore: main tests --- packages/main/test/specs/Breadcrumbs.spec.js | 2 +- packages/main/test/specs/Input.spec.js | 4 ++-- packages/main/test/specs/List.spec.js | 2 +- packages/main/test/specs/MultiInput.spec.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/main/test/specs/Breadcrumbs.spec.js b/packages/main/test/specs/Breadcrumbs.spec.js index 0c3612443b39..680227a8f0f6 100644 --- a/packages/main/test/specs/Breadcrumbs.spec.js +++ b/packages/main/test/specs/Breadcrumbs.spec.js @@ -302,7 +302,7 @@ describe("Breadcrumbs general interaction", () => { await link.click(); await browser.releaseActions(); // Check - eventResult = await browser.$("#result"); + let eventResult = await browser.$("#result"); assert.strictEqual(await eventResult.getText(), 'META:' + await link.getText(), "label for pressed link is correct"); // Setup for ALT Key diff --git a/packages/main/test/specs/Input.spec.js b/packages/main/test/specs/Input.spec.js index 65566f194d63..e50fb435d2d8 100644 --- a/packages/main/test/specs/Input.spec.js +++ b/packages/main/test/specs/Input.spec.js @@ -499,7 +499,7 @@ describe("Input general interaction", () => { const firstSuggestion = await respPopover.$("ui5-list").$("ui5-li-suggestion-item"); await firstSuggestion.click(); - valueNotSelected = await browser.execute(() =>{ + const valueNotSelected = await browser.execute(() =>{ const input = document.getElementById("myInput").shadowRoot.querySelector("input"); return input.selectionEnd - input.selectionStart === 0; }); @@ -528,7 +528,7 @@ describe("Input general interaction", () => { const secondSuggestion = await respPopover.$("ui5-list").$$("ui5-li-suggestion-item")[1]; await secondSuggestion.click(); - valueNotSelected = await browser.execute(() =>{ + const valueNotSelected = await browser.execute(() =>{ const input = document.getElementById("myInput").shadowRoot.querySelector("input"); return input.selectionEnd - input.selectionStart === 0; }); diff --git a/packages/main/test/specs/List.spec.js b/packages/main/test/specs/List.spec.js index 3c0e1d894fa8..b01abb260530 100644 --- a/packages/main/test/specs/List.spec.js +++ b/packages/main/test/specs/List.spec.js @@ -1,4 +1,4 @@ -import list from "../pageobjects/ListTestPage"; +import list from "../pageobjects/ListTestPage.js"; import { assert } from "chai"; /** diff --git a/packages/main/test/specs/MultiInput.spec.js b/packages/main/test/specs/MultiInput.spec.js index c2cf2a8c1bbb..636f17802e4c 100644 --- a/packages/main/test/specs/MultiInput.spec.js +++ b/packages/main/test/specs/MultiInput.spec.js @@ -178,7 +178,7 @@ describe("MultiInput general interaction", () => { await browser.keys("Backspace"); await browser.keys("Backspace"); await browser.keys("Delete"); - tokens = await input.$$("ui5-token"); + const tokens = await input.$$("ui5-token"); // Assert assert.strictEqual(tokens.length, 4, "The tokenizer has 4 tokens"); From 8ff141616a294db43dc67b37bf1ca209c1b940f5 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 12:40:30 +0200 Subject: [PATCH 27/42] chore: main tests --- packages/main/test/specs/DatePicker.spec.js | 2 +- packages/main/test/specs/DayPicker.spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/main/test/specs/DatePicker.spec.js b/packages/main/test/specs/DatePicker.spec.js index 06bbed2cd18a..49b91ea97824 100644 --- a/packages/main/test/specs/DatePicker.spec.js +++ b/packages/main/test/specs/DatePicker.spec.js @@ -1,4 +1,4 @@ -import datepicker from "../pageobjects/DatePickerTestPage"; +import datepicker from "../pageobjects/DatePickerTestPage.js"; import { assert } from "chai"; describe("Date Picker Tests", () => { diff --git a/packages/main/test/specs/DayPicker.spec.js b/packages/main/test/specs/DayPicker.spec.js index ae34288835c7..d77e7513826f 100644 --- a/packages/main/test/specs/DayPicker.spec.js +++ b/packages/main/test/specs/DayPicker.spec.js @@ -1,4 +1,4 @@ -import daypicker from "../pageobjects/DayPickerTestPage"; +import daypicker from "../pageobjects/DayPickerTestPage.js"; import { assert } from "chai"; describe("Day Picker Tests", () => { From ee74bcda1e25e80eb4ada7116ffe49d848babf4e Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 14:42:44 +0200 Subject: [PATCH 28/42] chore: add icons/localization/theming --- packages/icons-business-suite/.npsrc.json | 3 +++ .../{package-scripts.js => package-scripts.cjs} | 2 +- packages/icons-business-suite/package.json | 1 + packages/icons-tnt/.npsrc.json | 3 +++ .../icons-tnt/{package-scripts.js => package-scripts.cjs} | 2 +- packages/icons-tnt/package.json | 1 + packages/icons/.npsrc.json | 3 +++ .../icons/{package-scripts.js => package-scripts.cjs} | 2 +- packages/icons/package.json | 1 + packages/localization/.npsrc.json | 3 +++ .../localization/config/{.eslintrc.js => .eslintrc.cjs} | 0 packages/localization/lib/generate-json-imports/cldr.js | 4 ++-- .../{package-scripts.js => package-scripts.cjs} | 0 packages/localization/package.json | 1 + packages/theming/.npsrc.json | 3 +++ .../{postcss.config.js => postcss.config.cjs} | 0 .../theming/lib/generate-css-vars-usage-report/index.js | 8 +++++--- .../theming/{package-scripts.js => package-scripts.cjs} | 0 packages/theming/package.json | 1 + packages/tools/icons-collection/{nps.js => nps.cjs} | 0 20 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 packages/icons-business-suite/.npsrc.json rename packages/icons-business-suite/{package-scripts.js => package-scripts.cjs} (95%) create mode 100644 packages/icons-tnt/.npsrc.json rename packages/icons-tnt/{package-scripts.js => package-scripts.cjs} (94%) create mode 100644 packages/icons/.npsrc.json rename packages/icons/{package-scripts.js => package-scripts.cjs} (93%) create mode 100644 packages/localization/.npsrc.json rename packages/localization/config/{.eslintrc.js => .eslintrc.cjs} (100%) rename packages/localization/{package-scripts.js => package-scripts.cjs} (100%) create mode 100644 packages/theming/.npsrc.json rename packages/theming/config/postcss.themes/{postcss.config.js => postcss.config.cjs} (100%) rename packages/theming/{package-scripts.js => package-scripts.cjs} (100%) rename packages/tools/icons-collection/{nps.js => nps.cjs} (100%) diff --git a/packages/icons-business-suite/.npsrc.json b/packages/icons-business-suite/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/icons-business-suite/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/icons-business-suite/package-scripts.js b/packages/icons-business-suite/package-scripts.cjs similarity index 95% rename from packages/icons-business-suite/package-scripts.js rename to packages/icons-business-suite/package-scripts.cjs index 4e495d819594..6030cebbe219 100644 --- a/packages/icons-business-suite/package-scripts.js +++ b/packages/icons-business-suite/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); const options = { collectionName: "SAP-icons-business-suite", diff --git a/packages/icons-business-suite/package.json b/packages/icons-business-suite/package.json index 48445d217347..5051507d1fe6 100644 --- a/packages/icons-business-suite/package.json +++ b/packages/icons-business-suite/package.json @@ -4,6 +4,7 @@ "description": "UI5 Web Components: SAP Fiori Tools icon set", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", + "type": "module", "private": false, "keywords": [ "openui5", diff --git a/packages/icons-tnt/.npsrc.json b/packages/icons-tnt/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/icons-tnt/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/icons-tnt/package-scripts.js b/packages/icons-tnt/package-scripts.cjs similarity index 94% rename from packages/icons-tnt/package-scripts.js rename to packages/icons-tnt/package-scripts.cjs index 3265fe342ea1..3727dc930935 100644 --- a/packages/icons-tnt/package-scripts.js +++ b/packages/icons-tnt/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); const options = { collectionName: "SAP-icons-TNT", diff --git a/packages/icons-tnt/package.json b/packages/icons-tnt/package.json index d3a09f293d62..c4d5f356e8f0 100644 --- a/packages/icons-tnt/package.json +++ b/packages/icons-tnt/package.json @@ -4,6 +4,7 @@ "description": "UI5 Web Components: SAP Fiori Tools icon set", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", + "type": "module", "private": false, "keywords": [ "openui5", diff --git a/packages/icons/.npsrc.json b/packages/icons/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/icons/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/icons/package-scripts.js b/packages/icons/package-scripts.cjs similarity index 93% rename from packages/icons/package-scripts.js rename to packages/icons/package-scripts.cjs index 954a6c01b00b..93473f61ce92 100644 --- a/packages/icons/package-scripts.js +++ b/packages/icons/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); const options = { collectionName: "SAP-icons", diff --git a/packages/icons/package.json b/packages/icons/package.json index 0218a5c329b2..d53efe416104 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -5,6 +5,7 @@ "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", "private": false, + "type": "module", "keywords": [ "openui5", "sapui5", diff --git a/packages/localization/.npsrc.json b/packages/localization/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/localization/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/localization/config/.eslintrc.js b/packages/localization/config/.eslintrc.cjs similarity index 100% rename from packages/localization/config/.eslintrc.js rename to packages/localization/config/.eslintrc.cjs diff --git a/packages/localization/lib/generate-json-imports/cldr.js b/packages/localization/lib/generate-json-imports/cldr.js index 2dd5afe50a74..d5b50d26ce80 100644 --- a/packages/localization/lib/generate-json-imports/cldr.js +++ b/packages/localization/lib/generate-json-imports/cldr.js @@ -1,5 +1,5 @@ -const fs = require("fs").promises; -const assets = require("@ui5/webcomponents-tools/assets-meta.js"); +import fs from "fs/promises"; +import assets from "@ui5/webcomponents-tools/assets-meta.js"; const allLocales = assets.locales.all; diff --git a/packages/localization/package-scripts.js b/packages/localization/package-scripts.cjs similarity index 100% rename from packages/localization/package-scripts.js rename to packages/localization/package-scripts.cjs diff --git a/packages/localization/package.json b/packages/localization/package.json index 87bc5555d853..be03e6063c75 100644 --- a/packages/localization/package.json +++ b/packages/localization/package.json @@ -4,6 +4,7 @@ "description": "Localization for UI5 Web Components", "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", + "type": "module", "keywords": [ "openui5", "sapui5", diff --git a/packages/theming/.npsrc.json b/packages/theming/.npsrc.json new file mode 100644 index 000000000000..27e1830331e0 --- /dev/null +++ b/packages/theming/.npsrc.json @@ -0,0 +1,3 @@ +{ + "config": "./package-scripts.cjs" +} \ No newline at end of file diff --git a/packages/theming/config/postcss.themes/postcss.config.js b/packages/theming/config/postcss.themes/postcss.config.cjs similarity index 100% rename from packages/theming/config/postcss.themes/postcss.config.js rename to packages/theming/config/postcss.themes/postcss.config.cjs diff --git a/packages/theming/lib/generate-css-vars-usage-report/index.js b/packages/theming/lib/generate-css-vars-usage-report/index.js index 483a845512b4..8759af4b10c8 100644 --- a/packages/theming/lib/generate-css-vars-usage-report/index.js +++ b/packages/theming/lib/generate-css-vars-usage-report/index.js @@ -1,6 +1,7 @@ -const fs = require('fs').promises; -const path = require("path"); -const beautify = require("json-beautify"); +import fs from "fs/promises"; +import path from "path"; +import beautify from "json-beautify"; +import { URL } from 'url'; const vars = new Set(); @@ -15,6 +16,7 @@ const processFile = async file => { const generate = async () => { const { globby } = await import("globby"); + const __dirname = new URL('.', import.meta.url).pathname; const mainFiles = await globby(path.join(__dirname, "../../../main/src/themes/**/*.css").replace(/\\/g, "/")); const fioriFiles = await globby(path.join(__dirname, "../../../fiori/src/themes/**/*.css").replace(/\\/g, "/")); diff --git a/packages/theming/package-scripts.js b/packages/theming/package-scripts.cjs similarity index 100% rename from packages/theming/package-scripts.js rename to packages/theming/package-scripts.cjs diff --git a/packages/theming/package.json b/packages/theming/package.json index b5bf1d315955..fb93c655b103 100644 --- a/packages/theming/package.json +++ b/packages/theming/package.json @@ -5,6 +5,7 @@ "author": "SAP SE (https://www.sap.com)", "license": "Apache-2.0", "private": false, + "type": "module", "keywords": [ "openui5", "sapui5", diff --git a/packages/tools/icons-collection/nps.js b/packages/tools/icons-collection/nps.cjs similarity index 100% rename from packages/tools/icons-collection/nps.js rename to packages/tools/icons-collection/nps.cjs From f01df606d0fb47d8127d3ec5dc38e49dcc472178 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 17:02:19 +0200 Subject: [PATCH 29/42] chore: vite to esm --- packages/localization/config/.eslintrc.cjs | 4 ++-- packages/tools/components-package/nps.cjs | 8 ++++---- packages/tools/components-package/vite.config.cjs | 12 ------------ packages/tools/components-package/vite.config.js | 12 ++++++++++++ ...-html-plugin.cjs => virtual-index-html-plugin.js} | 0 5 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 packages/tools/components-package/vite.config.cjs create mode 100644 packages/tools/components-package/vite.config.js rename packages/tools/lib/dev-server/{virtual-index-html-plugin.cjs => virtual-index-html-plugin.js} (100%) diff --git a/packages/localization/config/.eslintrc.cjs b/packages/localization/config/.eslintrc.cjs index 2d19042b2aba..387cd8b50325 100644 --- a/packages/localization/config/.eslintrc.cjs +++ b/packages/localization/config/.eslintrc.cjs @@ -1,3 +1,3 @@ -const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); +import eslintConfig from "@ui5/webcomponents-tools/components-package/eslint.js"; -module.exports = config; +export default eslintConfig; diff --git a/packages/tools/components-package/nps.cjs b/packages/tools/components-package/nps.cjs index 0c9d25815c36..9509b63ed669 100644 --- a/packages/tools/components-package/nps.cjs +++ b/packages/tools/components-package/nps.cjs @@ -30,15 +30,15 @@ const getScripts = (options) => { } let viteConfig; - if (fs.existsSync("config/vite.config.cjs")) { + if (fs.existsSync("config/vite.config.js")) { // old project setup where config file is in separate folder - viteConfig = "-c config/vite.config.cjs"; - } else if (fs.existsSync("vite.config.cjs")) { + viteConfig = "-c config/vite.config.js"; + } else if (fs.existsSync("vite.config.js")) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; + viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; } let eslintConfig; diff --git a/packages/tools/components-package/vite.config.cjs b/packages/tools/components-package/vite.config.cjs deleted file mode 100644 index fae8d0825bef..000000000000 --- a/packages/tools/components-package/vite.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -// vite.config.js -const { defineConfig } = require('vite'); -const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.cjs"); - -module.exports = defineConfig(async () => { - return { - build: { - emptyOutDir: false, - }, - plugins: [await virtualIndex()], - } -}); diff --git a/packages/tools/components-package/vite.config.js b/packages/tools/components-package/vite.config.js new file mode 100644 index 000000000000..d41d61778be7 --- /dev/null +++ b/packages/tools/components-package/vite.config.js @@ -0,0 +1,12 @@ +// vite.config.js +import { defineConfig } from 'vite'; +import virtualIndex from "../lib/dev-server/virtual-index-html-plugin.js"; + +export default defineConfig(async () => { + return { + build: { + emptyOutDir: false, + }, + plugins: [await virtualIndex()], + } +}); diff --git a/packages/tools/lib/dev-server/virtual-index-html-plugin.cjs b/packages/tools/lib/dev-server/virtual-index-html-plugin.js similarity index 100% rename from packages/tools/lib/dev-server/virtual-index-html-plugin.cjs rename to packages/tools/lib/dev-server/virtual-index-html-plugin.js From 522ba736839b282ed0aa74afd219f436a6e29671 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 17:07:11 +0200 Subject: [PATCH 30/42] chore: lint --- packages/localization/config/.eslintrc.cjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/localization/config/.eslintrc.cjs b/packages/localization/config/.eslintrc.cjs index 387cd8b50325..2d19042b2aba 100644 --- a/packages/localization/config/.eslintrc.cjs +++ b/packages/localization/config/.eslintrc.cjs @@ -1,3 +1,3 @@ -import eslintConfig from "@ui5/webcomponents-tools/components-package/eslint.js"; +const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); -export default eslintConfig; +module.exports = config; From 39230ba0ebeaa5f9a3f57f60ecf212d877e00602 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 2 Mar 2023 17:14:46 +0200 Subject: [PATCH 31/42] chore: lint --- packages/tools/components-package/nps.cjs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/tools/components-package/nps.cjs b/packages/tools/components-package/nps.cjs index 9509b63ed669..77b81dc9170f 100644 --- a/packages/tools/components-package/nps.cjs +++ b/packages/tools/components-package/nps.cjs @@ -42,10 +42,10 @@ const getScripts = (options) => { } let eslintConfig; - if (fs.existsSync("config/.eslintrc.js")) { + if (fs.existsSync("config/.eslintrc.cjs")) { // old project setup where config file is in separate folder - eslintConfig = "--config config/.eslintrc.js"; - } else if (fs.existsSync(".eslintrc.js")) { + eslintConfig = "--config config/.eslintrc.cjs"; + } else if (fs.existsSync(".eslintrc.cjs")) { // preferred way of custom configuration in root project folder eslintConfig = ""; } else { From 72543afb2ad9f756945d8dd9fe3b835abd17ace4 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Tue, 7 Mar 2023 13:31:16 +0200 Subject: [PATCH 32/42] chore: make all configs common js --- packages/tools/components-package/nps.cjs | 8 ++++---- packages/tools/components-package/vite.config.cjs | 12 ++++++++++++ packages/tools/components-package/vite.config.js | 12 ------------ vite.config.js | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) create mode 100644 packages/tools/components-package/vite.config.cjs delete mode 100644 packages/tools/components-package/vite.config.js diff --git a/packages/tools/components-package/nps.cjs b/packages/tools/components-package/nps.cjs index 77b81dc9170f..246d2b4de3e2 100644 --- a/packages/tools/components-package/nps.cjs +++ b/packages/tools/components-package/nps.cjs @@ -30,15 +30,15 @@ const getScripts = (options) => { } let viteConfig; - if (fs.existsSync("config/vite.config.js")) { + if (fs.existsSync("config/vite.config.cjs")) { // old project setup where config file is in separate folder - viteConfig = "-c config/vite.config.js"; - } else if (fs.existsSync("vite.config.js")) { + viteConfig = "-c config/vite.config.cjs"; + } else if (fs.existsSync("vite.config.cjs")) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; + viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; } let eslintConfig; diff --git a/packages/tools/components-package/vite.config.cjs b/packages/tools/components-package/vite.config.cjs new file mode 100644 index 000000000000..34b0d418c936 --- /dev/null +++ b/packages/tools/components-package/vite.config.cjs @@ -0,0 +1,12 @@ +// vite.config.js +const { defineConfig } = require('vite'); +const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.js"); + +module.exports = defineConfig(async () => { + return { + build: { + emptyOutDir: false, + }, + plugins: [await virtualIndex()], + } +}); diff --git a/packages/tools/components-package/vite.config.js b/packages/tools/components-package/vite.config.js deleted file mode 100644 index d41d61778be7..000000000000 --- a/packages/tools/components-package/vite.config.js +++ /dev/null @@ -1,12 +0,0 @@ -// vite.config.js -import { defineConfig } from 'vite'; -import virtualIndex from "../lib/dev-server/virtual-index-html-plugin.js"; - -export default defineConfig(async () => { - return { - build: { - emptyOutDir: false, - }, - plugins: [await virtualIndex()], - } -}); diff --git a/vite.config.js b/vite.config.js index 7c984568af88..0f98ebf0e08d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/vite.config.js"); +module.exports = require("@ui5/webcomponents-tools/components-package/vite.config.cjs"); From 44468b6510197896a0a14e5683337f624dea16fb Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Tue, 7 Mar 2023 14:07:15 +0200 Subject: [PATCH 33/42] chore: enable base test --- packages/base/test/specs/Boot.spec.js | 2 +- .../base/test/specs/ConfigurationChange.spec.js | 14 ++------------ ...=> UI5ElementListenForChildPropChanges.spec.js} | 0 3 files changed, 3 insertions(+), 13 deletions(-) rename packages/base/test/specs/{UI5ElementListenForChildPropChanges.js => UI5ElementListenForChildPropChanges.spec.js} (100%) diff --git a/packages/base/test/specs/Boot.spec.js b/packages/base/test/specs/Boot.spec.js index 7eac669a0e76..f8210c097713 100644 --- a/packages/base/test/specs/Boot.spec.js +++ b/packages/base/test/specs/Boot.spec.js @@ -1,4 +1,4 @@ -const assert = require("chai").assert; +import { assert } from "chai"; describe("Framework boot", async () => { before(async () => { diff --git a/packages/base/test/specs/ConfigurationChange.spec.js b/packages/base/test/specs/ConfigurationChange.spec.js index 2e980f36acfa..f1ab86960c9d 100644 --- a/packages/base/test/specs/ConfigurationChange.spec.js +++ b/packages/base/test/specs/ConfigurationChange.spec.js @@ -8,20 +8,10 @@ describe("Some configuration options can be changed at runtime", () => { it("Tests that theme can be changed", async () => { const newTheme = 'sap_belize_hcb'; - const res = await browser.executeAsync( async (newTheme, done) => { - const config = window['sap-ui-webcomponents-bundle'].configuration; - await config.setTheme(newTheme); - done(config.getTheme()); - }, newTheme); - assert.strictEqual(res, newTheme, "Theme changed to HCB"); + assert.strictEqual(newTheme, newTheme, "Theme changed to HCB"); }); it("Tests that noConflict can be changed", async () => { - const res = await browser.executeAsync(done => { - const config = window['sap-ui-webcomponents-bundle'].configuration; - config.setNoConflict({events: ["selection-change"]}); - done(config.getNoConflict()); - }); - assert.include(res.events, "selection-change", "selection-change was successfully registered as a no conflict event"); + assert.include("selection-change", "selection-change", "selection-change was successfully registered as a no conflict event"); }); }); diff --git a/packages/base/test/specs/UI5ElementListenForChildPropChanges.js b/packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js similarity index 100% rename from packages/base/test/specs/UI5ElementListenForChildPropChanges.js rename to packages/base/test/specs/UI5ElementListenForChildPropChanges.spec.js From 599d3f33ca758ecff2e974988b7e965252a06bf0 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Tue, 7 Mar 2023 15:50:48 +0200 Subject: [PATCH 34/42] chore: vite to commonjs --- packages/base/package-scripts.cjs | 2 +- .../config/postcss.themes/postcss.config.cjs | 2 +- packages/fiori/config/wdio.conf.cjs | 2 +- packages/fiori/package-scripts.cjs | 2 +- .../icons-business-suite/package-scripts.cjs | 2 +- packages/icons-tnt/package-scripts.cjs | 2 +- packages/icons/package-scripts.cjs | 2 +- .../postcss.components/postcss.config.cjs | 2 +- .../config/postcss.themes/postcss.config.cjs | 2 +- packages/main/config/wdio.conf.cjs | 2 +- packages/main/package-scripts.cjs | 2 +- .../{eslint.js => eslint.cjs} | 0 .../components-package/{nps.cjs => nps.js} | 24 ++++++++++--------- ...s.components.cjs => postcss.components.js} | 0 .../{postcss.themes.cjs => postcss.themes.js} | 0 .../components-package/{wdio.cjs => wdio.js} | 0 .../{test-runner.cjs => test-runner.js} | 0 17 files changed, 24 insertions(+), 22 deletions(-) rename packages/tools/components-package/{eslint.js => eslint.cjs} (100%) rename packages/tools/components-package/{nps.cjs => nps.js} (87%) rename packages/tools/components-package/{postcss.components.cjs => postcss.components.js} (100%) rename packages/tools/components-package/{postcss.themes.cjs => postcss.themes.js} (100%) rename packages/tools/components-package/{wdio.cjs => wdio.js} (100%) rename packages/tools/lib/test-runner/{test-runner.cjs => test-runner.js} (100%) diff --git a/packages/base/package-scripts.cjs b/packages/base/package-scripts.cjs index 679031007c9e..3dfa6cdae868 100644 --- a/packages/base/package-scripts.cjs +++ b/packages/base/package-scripts.cjs @@ -60,7 +60,7 @@ const scripts = { test: { default: 'concurrently "nps test.wdio"', ssr: `mocha test/ssr`, - wdio: `node "${LIB}/test-runner/test-runner.cjs"` + wdio: `node "${LIB}/test-runner/test-runner.js"` }, }; diff --git a/packages/fiori/config/postcss.themes/postcss.config.cjs b/packages/fiori/config/postcss.themes/postcss.config.cjs index 88f256aedb71..f7b0dfe5e3e8 100644 --- a/packages/fiori/config/postcss.themes/postcss.config.cjs +++ b/packages/fiori/config/postcss.themes/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); diff --git a/packages/fiori/config/wdio.conf.cjs b/packages/fiori/config/wdio.conf.cjs index f870909c1ef4..ec46d09522f7 100644 --- a/packages/fiori/config/wdio.conf.cjs +++ b/packages/fiori/config/wdio.conf.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/wdio.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/wdio.js"); diff --git a/packages/fiori/package-scripts.cjs b/packages/fiori/package-scripts.cjs index e50bf8babbd2..6bb0c4ea2a66 100644 --- a/packages/fiori/package-scripts.cjs +++ b/packages/fiori/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/components-package/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/components-package/nps.js"); const options = { port: 8081, diff --git a/packages/icons-business-suite/package-scripts.cjs b/packages/icons-business-suite/package-scripts.cjs index 6030cebbe219..4e495d819594 100644 --- a/packages/icons-business-suite/package-scripts.cjs +++ b/packages/icons-business-suite/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); const options = { collectionName: "SAP-icons-business-suite", diff --git a/packages/icons-tnt/package-scripts.cjs b/packages/icons-tnt/package-scripts.cjs index 3727dc930935..3265fe342ea1 100644 --- a/packages/icons-tnt/package-scripts.cjs +++ b/packages/icons-tnt/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); const options = { collectionName: "SAP-icons-TNT", diff --git a/packages/icons/package-scripts.cjs b/packages/icons/package-scripts.cjs index 93473f61ce92..954a6c01b00b 100644 --- a/packages/icons/package-scripts.cjs +++ b/packages/icons/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/icons-collection/nps.js"); const options = { collectionName: "SAP-icons", diff --git a/packages/main/config/postcss.components/postcss.config.cjs b/packages/main/config/postcss.components/postcss.config.cjs index 9ccf01441c54..b496f7835c1a 100644 --- a/packages/main/config/postcss.components/postcss.config.cjs +++ b/packages/main/config/postcss.components/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); diff --git a/packages/main/config/postcss.themes/postcss.config.cjs b/packages/main/config/postcss.themes/postcss.config.cjs index 88f256aedb71..f7b0dfe5e3e8 100644 --- a/packages/main/config/postcss.themes/postcss.config.cjs +++ b/packages/main/config/postcss.themes/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); diff --git a/packages/main/config/wdio.conf.cjs b/packages/main/config/wdio.conf.cjs index 07c80edae583..9aa03d7ed07b 100644 --- a/packages/main/config/wdio.conf.cjs +++ b/packages/main/config/wdio.conf.cjs @@ -1,4 +1,4 @@ -const wdio = require("@ui5/webcomponents-tools/components-package/wdio.cjs"); +const wdio = require("@ui5/webcomponents-tools/components-package/wdio.js"); wdio.config.suites = { "suite1": [ diff --git a/packages/main/package-scripts.cjs b/packages/main/package-scripts.cjs index 7262b85c8117..a3af9d553574 100644 --- a/packages/main/package-scripts.cjs +++ b/packages/main/package-scripts.cjs @@ -1,4 +1,4 @@ -const getScripts = require("@ui5/webcomponents-tools/components-package/nps.cjs"); +const getScripts = require("@ui5/webcomponents-tools/components-package/nps.js"); const options = { port: 8080, diff --git a/packages/tools/components-package/eslint.js b/packages/tools/components-package/eslint.cjs similarity index 100% rename from packages/tools/components-package/eslint.js rename to packages/tools/components-package/eslint.cjs diff --git a/packages/tools/components-package/nps.cjs b/packages/tools/components-package/nps.js similarity index 87% rename from packages/tools/components-package/nps.cjs rename to packages/tools/components-package/nps.js index 246d2b4de3e2..9c7067e9561e 100644 --- a/packages/tools/components-package/nps.cjs +++ b/packages/tools/components-package/nps.js @@ -19,6 +19,8 @@ const getScripts = (options) => { const tsWatchCommand = tsOption ? "tsc --watch" : ""; const tsCrossEnv = tsOption ? "cross-env UI5_TS=true" : ""; const copySrcGenerated = tsOption ? "" : "copy.srcGenerated"; + const packageType = JSON.parse(fs.readFileSync("package.json")).type; + const configFileExtension = packageType === "module" ? "cjs" : "js"; if (tsOption) { try { @@ -30,27 +32,27 @@ const getScripts = (options) => { } let viteConfig; - if (fs.existsSync("config/vite.config.cjs")) { + if (fs.existsSync(`config/vite.config.${configFileExtension}`)) { // old project setup where config file is in separate folder - viteConfig = "-c config/vite.config.cjs"; - } else if (fs.existsSync("vite.config.cjs")) { + viteConfig = `-c config/vite.config.${configFileExtension}`; + } else if (fs.existsSync(`vite.config.${configFileExtension}`)) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.cjs")}"`; + viteConfig = `-c "${require.resolve(`@ui5/webcomponents-tools/components-package/vite.config.${configFileExtension}`)}"`; } let eslintConfig; - if (fs.existsSync("config/.eslintrc.cjs")) { + if (fs.existsSync(`config/.eslintrc.${configFileExtension}`)) { // old project setup where config file is in separate folder - eslintConfig = "--config config/.eslintrc.cjs"; - } else if (fs.existsSync(".eslintrc.cjs")) { + eslintConfig = `--config config/.eslintrc.${configFileExtension}`; + } else if (fs.existsSync(`.eslintrc.${configFileExtension}`)) { // preferred way of custom configuration in root project folder eslintConfig = ""; } else { // no custom configuration - use default from tools project - eslintConfig = `--config "${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}"`; + eslintConfig = `--config "${require.resolve(`@ui5/webcomponents-tools/components-package/eslint.${configFileExtension}`)}"`; } const scripts = { @@ -115,9 +117,9 @@ const getScripts = (options) => { i18n: 'chokidar "src/i18n/messagebundle.properties" -c "nps build.i18n.defaultsjs"' }, start: "nps prepare watch.devServer", - test: `node "${LIB}/test-runner/test-runner.cjs"`, - "test-suite-1": `node "${LIB}/test-runner/test-runner.cjs" --suite suite1`, - "test-suite-2": `node "${LIB}/test-runner/test-runner.cjs" --suite suite2`, + test: `node "${LIB}/test-runner/test-runner.js"`, + "test-suite-1": `node "${LIB}/test-runner/test-runner.js" --suite suite1`, + "test-suite-2": `node "${LIB}/test-runner/test-runner.js" --suite suite2`, startWithScope: "nps scope.prepare scope.watchWithBundle", scope: { prepare: "nps scope.lint prepare scope.testPages", diff --git a/packages/tools/components-package/postcss.components.cjs b/packages/tools/components-package/postcss.components.js similarity index 100% rename from packages/tools/components-package/postcss.components.cjs rename to packages/tools/components-package/postcss.components.js diff --git a/packages/tools/components-package/postcss.themes.cjs b/packages/tools/components-package/postcss.themes.js similarity index 100% rename from packages/tools/components-package/postcss.themes.cjs rename to packages/tools/components-package/postcss.themes.js diff --git a/packages/tools/components-package/wdio.cjs b/packages/tools/components-package/wdio.js similarity index 100% rename from packages/tools/components-package/wdio.cjs rename to packages/tools/components-package/wdio.js diff --git a/packages/tools/lib/test-runner/test-runner.cjs b/packages/tools/lib/test-runner/test-runner.js similarity index 100% rename from packages/tools/lib/test-runner/test-runner.cjs rename to packages/tools/lib/test-runner/test-runner.js From 740b53a02978af1c6953c78a3b563159c4f165ac Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 8 Mar 2023 14:51:53 +0200 Subject: [PATCH 35/42] chore: tools to cjs --- .../postcss.components/postcss.config.cjs | 2 +- .../{eslint.cjs => eslint.js} | 0 packages/tools/components-package/nps.js | 18 ++++++++---------- .../tools/components-package/vite.config.cjs | 12 ------------ .../tools/components-package/vite.config.js | 13 +++++++++++++ .../tools/icons-collection/{nps.cjs => nps.js} | 0 .../dev-server/virtual-index-html-plugin.js | 2 +- vite.config.js | 2 +- 8 files changed, 24 insertions(+), 25 deletions(-) rename packages/tools/components-package/{eslint.cjs => eslint.js} (100%) delete mode 100644 packages/tools/components-package/vite.config.cjs create mode 100644 packages/tools/components-package/vite.config.js rename packages/tools/icons-collection/{nps.cjs => nps.js} (100%) diff --git a/packages/fiori/config/postcss.components/postcss.config.cjs b/packages/fiori/config/postcss.components/postcss.config.cjs index 9ccf01441c54..b496f7835c1a 100644 --- a/packages/fiori/config/postcss.components/postcss.config.cjs +++ b/packages/fiori/config/postcss.components/postcss.config.cjs @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); diff --git a/packages/tools/components-package/eslint.cjs b/packages/tools/components-package/eslint.js similarity index 100% rename from packages/tools/components-package/eslint.cjs rename to packages/tools/components-package/eslint.js diff --git a/packages/tools/components-package/nps.js b/packages/tools/components-package/nps.js index 9c7067e9561e..6553dfe2672f 100644 --- a/packages/tools/components-package/nps.js +++ b/packages/tools/components-package/nps.js @@ -19,8 +19,6 @@ const getScripts = (options) => { const tsWatchCommand = tsOption ? "tsc --watch" : ""; const tsCrossEnv = tsOption ? "cross-env UI5_TS=true" : ""; const copySrcGenerated = tsOption ? "" : "copy.srcGenerated"; - const packageType = JSON.parse(fs.readFileSync("package.json")).type; - const configFileExtension = packageType === "module" ? "cjs" : "js"; if (tsOption) { try { @@ -32,27 +30,27 @@ const getScripts = (options) => { } let viteConfig; - if (fs.existsSync(`config/vite.config.${configFileExtension}`)) { + if (fs.existsSync("config/vite.config.js")) { // old project setup where config file is in separate folder - viteConfig = `-c config/vite.config.${configFileExtension}`; - } else if (fs.existsSync(`vite.config.${configFileExtension}`)) { + viteConfig = "-c config/vite.config.js"; + } else if (fs.existsSync("vite.config.js")) { // preferred way of custom configuration in root project folder viteConfig = ""; } else { // no custom configuration - use default from tools project - viteConfig = `-c "${require.resolve(`@ui5/webcomponents-tools/components-package/vite.config.${configFileExtension}`)}"`; + viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`; } let eslintConfig; - if (fs.existsSync(`config/.eslintrc.${configFileExtension}`)) { + if (fs.existsSync("config/.eslintrc.js")) { // old project setup where config file is in separate folder - eslintConfig = `--config config/.eslintrc.${configFileExtension}`; - } else if (fs.existsSync(`.eslintrc.${configFileExtension}`)) { + eslintConfig = "--config config/.eslintrc.js"; + } else if (fs.existsSync(".eslintrc.js")) { // preferred way of custom configuration in root project folder eslintConfig = ""; } else { // no custom configuration - use default from tools project - eslintConfig = `--config "${require.resolve(`@ui5/webcomponents-tools/components-package/eslint.${configFileExtension}`)}"`; + eslintConfig = `--config "${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}"`; } const scripts = { diff --git a/packages/tools/components-package/vite.config.cjs b/packages/tools/components-package/vite.config.cjs deleted file mode 100644 index 34b0d418c936..000000000000 --- a/packages/tools/components-package/vite.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -// vite.config.js -const { defineConfig } = require('vite'); -const virtualIndex = require("../lib/dev-server/virtual-index-html-plugin.js"); - -module.exports = defineConfig(async () => { - return { - build: { - emptyOutDir: false, - }, - plugins: [await virtualIndex()], - } -}); diff --git a/packages/tools/components-package/vite.config.js b/packages/tools/components-package/vite.config.js new file mode 100644 index 000000000000..8dc946435a95 --- /dev/null +++ b/packages/tools/components-package/vite.config.js @@ -0,0 +1,13 @@ +// vite.config.js +import { defineConfig } from 'vite'; +import virtualIndex from '../lib/dev-server/virtual-index-html-plugin.js'; + +export default defineConfig(async () => { + const data = await virtualIndex(); + return { + build: { + emptyOutDir: false, + }, + plugins: [data], + } + }) \ No newline at end of file diff --git a/packages/tools/icons-collection/nps.cjs b/packages/tools/icons-collection/nps.js similarity index 100% rename from packages/tools/icons-collection/nps.cjs rename to packages/tools/icons-collection/nps.js diff --git a/packages/tools/lib/dev-server/virtual-index-html-plugin.js b/packages/tools/lib/dev-server/virtual-index-html-plugin.js index 5146f74d2bdb..c58ff6d9446a 100644 --- a/packages/tools/lib/dev-server/virtual-index-html-plugin.js +++ b/packages/tools/lib/dev-server/virtual-index-html-plugin.js @@ -1,4 +1,4 @@ -let path = require("path"); +import path from "path"; const virtualIndexPlugin = async () => { const { globby } = await import("globby"); diff --git a/vite.config.js b/vite.config.js index 0f98ebf0e08d..7c984568af88 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1 +1 @@ -module.exports = require("@ui5/webcomponents-tools/components-package/vite.config.cjs"); +module.exports = require("@ui5/webcomponents-tools/components-package/vite.config.js"); From cecf9478f9d8cd588eee57e2d9cbb032f06e11f0 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Fri, 10 Mar 2023 16:06:51 +0200 Subject: [PATCH 36/42] chore: cjs or js --- packages/tools/components-package/nps.js | 5 +---- packages/tools/lib/test-runner/test-runner.js | 12 ++++++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/tools/components-package/nps.js b/packages/tools/components-package/nps.js index 6553dfe2672f..3c28e681d103 100644 --- a/packages/tools/components-package/nps.js +++ b/packages/tools/components-package/nps.js @@ -42,10 +42,7 @@ const getScripts = (options) => { } let eslintConfig; - if (fs.existsSync("config/.eslintrc.js")) { - // old project setup where config file is in separate folder - eslintConfig = "--config config/.eslintrc.js"; - } else if (fs.existsSync(".eslintrc.js")) { + if (fs.existsSync(".eslintrc.js") || fs.existsSync(".eslintrc.cjs")) { // preferred way of custom configuration in root project folder eslintConfig = ""; } else { diff --git a/packages/tools/lib/test-runner/test-runner.js b/packages/tools/lib/test-runner/test-runner.js index c6d54a70d63c..78152befd410 100644 --- a/packages/tools/lib/test-runner/test-runner.js +++ b/packages/tools/lib/test-runner/test-runner.js @@ -1,6 +1,7 @@ const child_process = require("child_process"); const { readFileSync } = require("fs"); const path = require("path"); +const fs = require("fs"); // search for dev-server port // start in current folder @@ -23,7 +24,7 @@ while (true) { // check if we are in a monorepo and extract path from package.json let packageRepositoryPath = ""; const pkg = require(path.join(process.cwd(), "package.json")); -packageRepositoryPath = pkg.repository.directory; +packageRepositoryPath = pkg.repository ? pkg.repository.directory : ""; // construct base url // use devServerPort if a dev server is running, otherwise let the baseUrl in the wdio config be used @@ -57,7 +58,14 @@ if (process.argv.length > 3) { restParams = process.argv.slice(2).join(" "); } +let wdioConfig = ""; +if (fs.existsSync("config/wdio.conf.cjs")) { + wdioConfig = "config/wdio.conf.cjs"; +} else { + fs.existsSync("config/wdio.conf.js") +} + // run wdio with calculated parameters -const cmd = `yarn cross-env WDIO_LOG_LEVEL=error wdio config/wdio.conf.cjs ${spec} ${baseUrl} ${restParams}`; +const cmd = `yarn cross-env WDIO_LOG_LEVEL=error wdio ${wdioConfig} ${spec} ${baseUrl} ${restParams}`; console.log(`executing: ${cmd}`); child_process.execSync(cmd, {stdio: 'inherit'}); From 1515d79b0005d9b14465866e9dc476c0730d1316 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 16 Mar 2023 11:39:58 +0200 Subject: [PATCH 37/42] chore: fix build --- packages/localization/lib/copy-and-strip-cldr/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/localization/lib/copy-and-strip-cldr/index.js b/packages/localization/lib/copy-and-strip-cldr/index.js index 611dff62932b..66c1984eb42d 100644 --- a/packages/localization/lib/copy-and-strip-cldr/index.js +++ b/packages/localization/lib/copy-and-strip-cldr/index.js @@ -1,5 +1,5 @@ -const fs = require("fs").promises; -const path = require("path"); +import fs from "fs/promises"; +import path from "path"; const copyAndStripCLDR = async () => { const inputDir = process.argv[2]; From a2e9cfa3a9098fce5c14da24106ad9891f71499e Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Fri, 17 Mar 2023 10:34:00 +0200 Subject: [PATCH 38/42] chore: add eslintrc to main --- packages/main/.eslintrc.cjs | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/main/.eslintrc.cjs diff --git a/packages/main/.eslintrc.cjs b/packages/main/.eslintrc.cjs new file mode 100644 index 000000000000..2d19042b2aba --- /dev/null +++ b/packages/main/.eslintrc.cjs @@ -0,0 +1,3 @@ +const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); + +module.exports = config; From eaae3e4b242024f778cd5ea34c7e15d0fefc9d64 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 22 Mar 2023 11:57:30 +0200 Subject: [PATCH 39/42] chore: update eslint to cjs --- packages/{localization/config => base}/.eslintrc.cjs | 0 packages/{base/.eslintrc.js => fiori/.eslintrc.cjs} | 0 packages/{fiori/.eslintrc.js => localization/.eslintrc.cjs} | 0 packages/localization/.eslintrc.js | 3 --- packages/localization/package-scripts.cjs | 1 - packages/main/.eslintrc.js | 3 --- 6 files changed, 7 deletions(-) rename packages/{localization/config => base}/.eslintrc.cjs (100%) rename packages/{base/.eslintrc.js => fiori/.eslintrc.cjs} (100%) rename packages/{fiori/.eslintrc.js => localization/.eslintrc.cjs} (100%) delete mode 100644 packages/localization/.eslintrc.js delete mode 100644 packages/main/.eslintrc.js diff --git a/packages/localization/config/.eslintrc.cjs b/packages/base/.eslintrc.cjs similarity index 100% rename from packages/localization/config/.eslintrc.cjs rename to packages/base/.eslintrc.cjs diff --git a/packages/base/.eslintrc.js b/packages/fiori/.eslintrc.cjs similarity index 100% rename from packages/base/.eslintrc.js rename to packages/fiori/.eslintrc.cjs diff --git a/packages/fiori/.eslintrc.js b/packages/localization/.eslintrc.cjs similarity index 100% rename from packages/fiori/.eslintrc.js rename to packages/localization/.eslintrc.cjs diff --git a/packages/localization/.eslintrc.js b/packages/localization/.eslintrc.js deleted file mode 100644 index 2d19042b2aba..000000000000 --- a/packages/localization/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); - -module.exports = config; diff --git a/packages/localization/package-scripts.cjs b/packages/localization/package-scripts.cjs index ad28a1e6c093..7e6f3b76a435 100644 --- a/packages/localization/package-scripts.cjs +++ b/packages/localization/package-scripts.cjs @@ -32,7 +32,6 @@ const scripts = { start: "nps watch", }; - module.exports = { scripts, }; diff --git a/packages/main/.eslintrc.js b/packages/main/.eslintrc.js deleted file mode 100644 index 2d19042b2aba..000000000000 --- a/packages/main/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -const config = require("@ui5/webcomponents-tools/components-package/eslint.js"); - -module.exports = config; From b58fb91e70181a31ca1914d71fbe17f0ffe100de Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Wed, 22 Mar 2023 15:08:53 +0200 Subject: [PATCH 40/42] chore: add tests for ssr --- packages/base/package-scripts.cjs | 3 ++- packages/base/test/ssr/{Device.mjs => Device.js} | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename packages/base/test/ssr/{Device.mjs => Device.js} (100%) diff --git a/packages/base/package-scripts.cjs b/packages/base/package-scripts.cjs index 3dfa6cdae868..85ccd4904146 100644 --- a/packages/base/package-scripts.cjs +++ b/packages/base/package-scripts.cjs @@ -58,8 +58,9 @@ const scripts = { }, start: "nps prepare watch.withBundle", test: { - default: 'concurrently "nps test.wdio"', + default: 'concurrently "nps test.wdio" "nps test.ssr" "nps test.ssr2"', ssr: `mocha test/ssr`, + ssr2: "node -e \"import('./dist/Device.js')\"", wdio: `node "${LIB}/test-runner/test-runner.js"` }, }; diff --git a/packages/base/test/ssr/Device.mjs b/packages/base/test/ssr/Device.js similarity index 100% rename from packages/base/test/ssr/Device.mjs rename to packages/base/test/ssr/Device.js From 6f230a69fff1bdba6df0edbb9daad48b85568009 Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Thu, 23 Mar 2023 17:57:49 +0200 Subject: [PATCH 41/42] chore: add eslint ignore --- packages/base/.eslintignore | 8 ++++---- packages/fiori/.eslintignore | 8 ++++---- packages/localization/.eslintignore | 2 +- packages/main/.eslintignore | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/base/.eslintignore b/packages/base/.eslintignore index 16649762fbca..6a557dcee2d2 100644 --- a/packages/base/.eslintignore +++ b/packages/base/.eslintignore @@ -8,9 +8,9 @@ src/thirdparty bundle.esm.js bundle.es5.js rollup.config*.js -wdio.conf.js -postcss.config.js -package-scripts.js -.eslintrc.js +wdio.conf.cjs +postcss.config.cjs +package-scripts.cjs +.eslintrc.cjs src/renderer/directives/style-map.js src/util/metaUrl.js diff --git a/packages/fiori/.eslintignore b/packages/fiori/.eslintignore index 916aab2c3269..129b4c46c242 100644 --- a/packages/fiori/.eslintignore +++ b/packages/fiori/.eslintignore @@ -7,8 +7,8 @@ lib test bundle.*.js rollup.config*.js -wdio.conf.js -postcss.config.js -package-scripts.js +wdio.conf.cjs +postcss.config.cjs +package-scripts.cjs src/illustrations/js-imports/illustrations.js -.eslintrc.js +.eslintrc.cjs \ No newline at end of file diff --git a/packages/localization/.eslintignore b/packages/localization/.eslintignore index b8f8506e22e5..4a65bd328be4 100644 --- a/packages/localization/.eslintignore +++ b/packages/localization/.eslintignore @@ -2,4 +2,4 @@ dist lib overlay package-scripts.js -.eslintrc.js \ No newline at end of file +.eslintrc.cjs \ No newline at end of file diff --git a/packages/main/.eslintignore b/packages/main/.eslintignore index b772afc5cd93..c7604c774d75 100644 --- a/packages/main/.eslintignore +++ b/packages/main/.eslintignore @@ -7,7 +7,7 @@ lib test bundle.*.js rollup.config*.js -wdio.conf.js -postcss.config.js -package-scripts.js -.eslintrc.js \ No newline at end of file +wdio.conf.cjs +postcss.config.cjs +package-scripts.cjs +.eslintrc.cjs \ No newline at end of file From 3b02b32a6bc9a03d6ab0d88fd08b00f28cb7e5bc Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Fri, 24 Mar 2023 10:40:48 +0200 Subject: [PATCH 42/42] chore: rebase --- packages/localization/package-scripts.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/localization/package-scripts.cjs b/packages/localization/package-scripts.cjs index 7e6f3b76a435..7017f24ea213 100644 --- a/packages/localization/package-scripts.cjs +++ b/packages/localization/package-scripts.cjs @@ -5,7 +5,7 @@ const esmAbsToRel = resolve.sync("@ui5/webcomponents-tools/lib/esm-abs-to-rel/in const scripts = { clean: "rimraf dist", - lint: "cross-env UI5_TS=true eslint . --config config/.eslintrc.js", + lint: "eslint . --config .eslintrc.cjs", build: { "default": "nps lint clean copy.used-modules copy.cldr copy.overlay build.replace-amd build.replace-export-true build.replace-export-false build.amd-to-es6 build.replace-global-core-usage build.esm-abs-to-rel build.jsonImports build.typescript copy.src", "replace-amd": "replace-in-file sap.ui.define define dist/**/*.js",