diff --git a/.github/workflows/github-ci.yml b/.github/workflows/github-ci.yml index 6d7a861d554..3581d3353da 100644 --- a/.github/workflows/github-ci.yml +++ b/.github/workflows/github-ci.yml @@ -27,6 +27,28 @@ jobs: - name: Install dependencies run: npm ci --engine-strict # --engine-strict is used to fail-fast if deps require node versions unsupported by the repo + - name: Check package.json "engines" consistency + run: | + node << 'EOF' + const { execSync } = require('child_process'); + const fs = require('fs'); + + const rootPkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); + const workspaces = JSON.parse(execSync('npm query .workspace --json', { encoding: 'utf8' })); + + let hasError = false; + workspaces.forEach(pkg => { + if (JSON.stringify(pkg.engines) !== JSON.stringify(rootPkg.engines)) { + console.error(`❌ ${pkg.location}/package.json "engines" mismatch with root package.json`); + hasError = true; + } + }); + + if (hasError) process.exit(1); + console.log('✅ All workspace packages "engines" are consistent with root package.json'); + + EOF + - name: Perform ESLint check run: npm run lint diff --git a/ava.common.config.js b/ava.common.config.js new file mode 100644 index 00000000000..4c16d492d1c --- /dev/null +++ b/ava.common.config.js @@ -0,0 +1,16 @@ +export default { + files: [ + "test/lib/**/*.js", + "!test/**/__helper__/**" + ], + watchMode: { + ignoreChanges: [ + "test/tmp/**" + ], + }, + nodeArguments: [ + "--loader=esmock", + "--no-warnings" + ], + workerThreads: false, +}; diff --git a/internal/benchmark/package.json b/internal/benchmark/package.json index bdbded5e658..1fc3a7e076a 100644 --- a/internal/benchmark/package.json +++ b/internal/benchmark/package.json @@ -3,6 +3,10 @@ "private": true, "license": "Apache-2.0", "type": "module", + "engines": { + "node": "^22.20.0 || >=24.0.0", + "npm": ">= 8" + }, "bin": { "ui5-cli-benchmark": "./cli.js" }, diff --git a/internal/shrinkwrap-extractor/package.json b/internal/shrinkwrap-extractor/package.json index 89f2ad5e010..296305aae72 100644 --- a/internal/shrinkwrap-extractor/package.json +++ b/internal/shrinkwrap-extractor/package.json @@ -22,9 +22,9 @@ "test": "npm run lint && npm run coverage && npm run depcheck", "unit": "node --test test/lib/convertToShrinkwrap.js", "unit-watch": "node --test --watch test/lib/convertToShrinkwrap.js", - "coverage": "nyc node --test test/lib/convertToShrinkwrap.js", + "coverage": "node --test --experimental-test-coverage 'test/lib/convertToShrinkwrap.js'", "lint": "eslint .", - "depcheck": "depcheck --ignores @ui5/shrinkwrap-extractor,@eslint/js,eslint-config-google,globals,nyc" + "depcheck": "depcheck" }, "keywords": [ "npm", @@ -34,32 +34,17 @@ "dependencies" ], "type": "module", + "engines": { + "node": "^22.20.0 || >=24.0.0", + "npm": ">= 8" + }, "dependencies": { "@npmcli/arborist": "^9.1.7", "@npmcli/config": "^10.4.0", "pacote": "^21.0.4" }, "devDependencies": { - "@eslint/js": "^9.39.1", "depcheck": "^1.4.7", - "eslint-config-google": "^0.14.0", - "globals": "^16.5.0", - "nyc": "^17.1.0" - }, - "nyc": { - "reporter": [ - "lcov", - "text", - "text-summary" - ], - "exclude": [ - "coverage/**", - "test/**" - ], - "check-coverage": true, - "statements": 80, - "branches": 75, - "functions": 75, - "lines": 80 + "eslint": "^9.39.1" } } diff --git a/nyc.common.config.js b/nyc.common.config.js new file mode 100644 index 00000000000..2f0a0256ad0 --- /dev/null +++ b/nyc.common.config.js @@ -0,0 +1,33 @@ +export default { + "reporter": [ + "lcov", + "text", + "text-summary" + ], + "exclude": [ + "coverage/**", + "test/**", + "*.config.js" + ], + "check-coverage": true, + "watermarks": { + "statements": [ + 70, + 90 + ], + "branches": [ + 70, + 90 + ], + "functions": [ + 70, + 90 + ], + "lines": [ + 70, + 90 + ] + }, + "cache": true, + "all": true +}; diff --git a/package-lock.json b/package-lock.json index b7fe15fe0a6..4ee34ac454f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,6 +43,10 @@ "devDependencies": { "depcheck": "^1.4.7", "eslint": "^9.39.1" + }, + "engines": { + "node": "^22.20.0 || >=24.0.0", + "npm": ">= 8" } }, "internal/documentation": { @@ -95,11 +99,12 @@ "shrinkwrap-extractor": "cli.js" }, "devDependencies": { - "@eslint/js": "^9.39.1", "depcheck": "^1.4.7", - "eslint-config-google": "^0.14.0", - "globals": "^16.5.0", - "nyc": "^17.1.0" + "eslint": "^9.39.1" + }, + "engines": { + "node": "^22.20.0 || >=24.0.0", + "npm": ">= 8" } }, "internal/shrinkwrap-extractor/node_modules/@npmcli/arborist": { @@ -380,7 +385,6 @@ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.44.0.tgz", "integrity": "sha512-/FRKUM1G4xn3vV8+9xH1WJ9XknU8rkBGlefruq9jDhYUAvYozKimhrmC2pRqw/RyHhPivmgZCRuC8jHP8piz4Q==", "license": "MIT", - "peer": true, "dependencies": { "@algolia/client-common": "5.44.0", "@algolia/requester-browser-xhr": "5.44.0", @@ -533,7 +537,6 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -4494,8 +4497,7 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/linkify-it": { "version": "5.0.0", @@ -4508,7 +4510,6 @@ "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", "license": "MIT", - "peer": true, "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" @@ -4542,7 +4543,6 @@ "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -5129,7 +5129,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5207,7 +5206,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5233,7 +5231,6 @@ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.44.0.tgz", "integrity": "sha512-f8IpsbdQjzTjr/4mJ/jv5UplrtyMnnciGax6/B0OnLCs2/GJTK13O4Y7Ff1AvJVAaztanH+m5nzPoUq6EAy+aA==", "license": "MIT", - "peer": true, "dependencies": { "@algolia/abtesting": "1.10.0", "@algolia/client-abtesting": "5.44.0", @@ -6046,7 +6043,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", @@ -7261,7 +7257,6 @@ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -8786,7 +8781,6 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -9853,7 +9847,6 @@ "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.6.tgz", "integrity": "sha512-v/Z8bvMCajtx4mEXmOo7QEsIzlIOqRXTIwgUfsFOF9gEsespdbD0AkPIka1bSXZ8Y8oZ+2IVDQZePkTfEHZl7Q==", "license": "MIT", - "peer": true, "dependencies": { "tabbable": "^6.3.0" } @@ -12167,7 +12160,6 @@ "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "devOptional": true, "license": "MIT", - "peer": true, "bin": { "jiti": "lib/jiti-cli.mjs" } @@ -13640,7 +13632,6 @@ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "license": "MIT", - "peer": true, "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", @@ -15872,7 +15863,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -17428,7 +17418,6 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -20300,7 +20289,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -20401,7 +20389,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz", "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.25", "@vue/compiler-sfc": "3.5.25", @@ -20909,7 +20896,6 @@ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "devOptional": true, "license": "ISC", - "peer": true, "engines": { "node": ">= 6" } diff --git a/package.json b/package.json index 6f3e4d701dc..5778af9e2ce 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "coverage": "npm run coverage --workspaces --if-present", "depcheck": "depcheck --ignores @ui5/builder,@ui5/cli,@ui5/fs,@ui5/logger,@ui5/project,@ui5/server,local-web-server,@commitlint/config-conventional,husky && npm run depcheck --workspaces --if-present", "check-licenses": "licensee --errors-only", + "schema-generate": "npm run schema-generate --workspace=@ui5/documentation", "generate-cli-doc": "npm run generate-cli-doc --workspace=@ui5/documentation" }, "repository": { diff --git a/packages/builder/ava.config.js b/packages/builder/ava.config.js new file mode 100644 index 00000000000..64c839940ec --- /dev/null +++ b/packages/builder/ava.config.js @@ -0,0 +1,3 @@ +import avaCommonConfig from "../../ava.common.config.js"; + +export default avaCommonConfig; diff --git a/packages/builder/nyc.config.js b/packages/builder/nyc.config.js new file mode 100644 index 00000000000..15974066483 --- /dev/null +++ b/packages/builder/nyc.config.js @@ -0,0 +1,12 @@ +import nycCommonConfig from "../../nyc.common.config.js"; + +// Exclude jsdoc library files from coverage as they are originally maintained at https://github.com/UI5/openui5/tree/master/lib/jsdoc +nycCommonConfig.exclude.push("lib/processors/jsdoc/lib/**"); + +export default { + ...nycCommonConfig, + "statements": 95, + "branches": 90, + "functions": 95, + "lines": 95, +}; diff --git a/packages/builder/package.json b/packages/builder/package.json index 057349d07eb..2062d5464dc 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -40,10 +40,6 @@ "unit-watch": "rimraf test/tmp && ava --watch", "unit-inspect": "cross-env UI5_LOG_LVL=verbose ava debug --break", "coverage": "rimraf test/tmp && nyc ava --node-arguments=\"--experimental-loader=@istanbuljs/esm-loader-hook\"", - "preversion": "npm test", - "version": "git-chglog --sort semver --next-tag v$npm_package_version -o CHANGELOG.md v4.0.0.. && git add CHANGELOG.md", - "prepublishOnly": "git push --follow-tags", - "release-note": "git-chglog --sort semver -c .chglog/release-config.yml v$npm_package_version", "depcheck": "depcheck --ignores @ui5/builder,@istanbuljs/esm-loader-hook,catharsis,rimraf,jsdoc --parsers='**/*.js:es6,**/*.cjs:es6'" }, "files": [ @@ -51,21 +47,6 @@ "lib/**", "LICENSES/**" ], - "ava": { - "files": [ - "test/lib/**/*.js" - ], - "watchMode": { - "ignoreChanges": [ - "test/tmp/**" - ] - }, - "nodeArguments": [ - "--loader=esmock", - "--no-warnings" - ], - "workerThreads": false - }, "nyc": { "reporter": [ "lcov", diff --git a/packages/cli/ava.config.js b/packages/cli/ava.config.js new file mode 100644 index 00000000000..2761c4b673c --- /dev/null +++ b/packages/cli/ava.config.js @@ -0,0 +1,5 @@ +import avaCommonConfig from "../../ava.common.config.js"; + +avaCommonConfig.files.push("test/bin/**/*.js"); + +export default avaCommonConfig; diff --git a/packages/cli/nyc.config.js b/packages/cli/nyc.config.js new file mode 100644 index 00000000000..7a66b9a986b --- /dev/null +++ b/packages/cli/nyc.config.js @@ -0,0 +1,9 @@ +import nycCommonConfig from "../../nyc.common.config.js"; + +export default { + ...nycCommonConfig, + "statements": 95, + "branches": 90, + "functions": 85, + "lines": 95, +}; diff --git a/packages/cli/package.json b/packages/cli/package.json index 716580254a1..a6fc4a044ad 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -37,10 +37,6 @@ "unit-watch": "npm run unit -- --watch", "unit-inspect": "cross-env UI5_LOG_LVL=verbose ava debug --break", "coverage": "rimraf test/tmp && nyc ava --node-arguments=\"--experimental-loader=@istanbuljs/esm-loader-hook\"", - "preversion": "npm test", - "version": "git-chglog --sort semver --next-tag v$npm_package_version -o CHANGELOG.md v4.0.0.. && git add CHANGELOG.md", - "prepublishOnly": "git push --follow-tags", - "release-note": "git-chglog --sort semver -c .chglog/release-config.yml v$npm_package_version | node .chglog/consolidate-changelogs.js", "depcheck": "depcheck --ignores @ui5/cli,rimraf,@istanbuljs/esm-loader-hook,@ui5/fs,@ui5/builder" }, "files": [ @@ -50,54 +46,6 @@ "lib/**", "LICENSES/**" ], - "ava": { - "files": [ - "test/bin/**/*.js", - "test/lib/**/*.js" - ], - "nodeArguments": [ - "--loader=esmock", - "--no-warnings" - ], - "workerThreads": false - }, - "nyc": { - "reporter": [ - "lcov", - "text", - "text-summary" - ], - "exclude": [ - "docs/**", - "coverage/**", - "test/**" - ], - "check-coverage": true, - "statements": 80, - "branches": 75, - "functions": 75, - "lines": 80, - "watermarks": { - "statements": [ - 70, - 90 - ], - "branches": [ - 70, - 90 - ], - "functions": [ - 70, - 90 - ], - "lines": [ - 70, - 90 - ] - }, - "cache": true, - "all": true - }, "repository": { "type": "git", "url": "git+ssh://git@github.com/UI5/cli.git", diff --git a/packages/fs/ava.config.js b/packages/fs/ava.config.js new file mode 100644 index 00000000000..64c839940ec --- /dev/null +++ b/packages/fs/ava.config.js @@ -0,0 +1,3 @@ +import avaCommonConfig from "../../ava.common.config.js"; + +export default avaCommonConfig; diff --git a/packages/fs/nyc.config.js b/packages/fs/nyc.config.js new file mode 100644 index 00000000000..beea490451b --- /dev/null +++ b/packages/fs/nyc.config.js @@ -0,0 +1,9 @@ +import nycCommonConfig from "../../nyc.common.config.js"; + +export default { + ...nycCommonConfig, + "statements": 90, + "branches": 85, + "functions": 90, + "lines": 90, +}; diff --git a/packages/fs/package.json b/packages/fs/package.json index 5094d0af042..2a2ff4a35b6 100644 --- a/packages/fs/package.json +++ b/packages/fs/package.json @@ -43,10 +43,6 @@ "unit-watch": "npm run unit -- --watch", "unit-inspect": "cross-env UI5_LOG_LVL=verbose ava debug --break", "coverage": "rimraf test/tmp && nyc ava --node-arguments=\"--experimental-loader=@istanbuljs/esm-loader-hook\"", - "preversion": "npm test", - "version": "git-chglog --sort semver --next-tag v$npm_package_version -o CHANGELOG.md v4.0.0.. && git add CHANGELOG.md", - "prepublishOnly": "git push --follow-tags", - "release-note": "git-chglog --sort semver -c .chglog/release-config.yml v$npm_package_version", "depcheck": "depcheck --ignores @ui5/fs,@istanbuljs/esm-loader-hook" }, "files": [ @@ -54,58 +50,6 @@ "lib/**", "LICENSES/**" ], - "ava": { - "files": [ - "test/lib/**/*.js" - ], - "watchMode": { - "ignoreChanges": [ - "test/tmp/**" - ] - }, - "nodeArguments": [ - "--loader=esmock", - "--no-warnings" - ], - "workerThreads": false - }, - "nyc": { - "reporter": [ - "lcov", - "text", - "text-summary" - ], - "exclude": [ - "docs/**", - "coverage/**", - "test/**" - ], - "check-coverage": true, - "statements": 85, - "branches": 80, - "functions": 90, - "lines": 85, - "watermarks": { - "statements": [ - 70, - 90 - ], - "branches": [ - 70, - 90 - ], - "functions": [ - 70, - 90 - ], - "lines": [ - 70, - 90 - ] - }, - "cache": true, - "all": true - }, "repository": { "type": "git", "url": "git+ssh://git@github.com/UI5/cli.git", diff --git a/packages/logger/ava.config.js b/packages/logger/ava.config.js new file mode 100644 index 00000000000..64c839940ec --- /dev/null +++ b/packages/logger/ava.config.js @@ -0,0 +1,3 @@ +import avaCommonConfig from "../../ava.common.config.js"; + +export default avaCommonConfig; diff --git a/packages/logger/lib/writers/Console.js b/packages/logger/lib/writers/Console.js index 8b90b28567e..8243df7720c 100644 --- a/packages/logger/lib/writers/Console.js +++ b/packages/logger/lib/writers/Console.js @@ -440,9 +440,9 @@ class Console { return chalk.yellow(level); case "error": return chalk.bgRed.white(level); - // Log level silent does not produce messages default: - return level; + // Log level silent does not produce messages + throw new Error(`writers/Console: Invalid message log level "${level}"`); } } diff --git a/packages/logger/nyc.config.js b/packages/logger/nyc.config.js new file mode 100644 index 00000000000..45dc282355e --- /dev/null +++ b/packages/logger/nyc.config.js @@ -0,0 +1,9 @@ +import nycCommonConfig from "../../nyc.common.config.js"; + +export default { + ...nycCommonConfig, + "statements": 100, + "branches": 100, + "functions": 100, + "lines": 100, +}; diff --git a/packages/logger/package.json b/packages/logger/package.json index f356f566c53..6cb345400d1 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -36,10 +36,6 @@ "unit-watch": "npm run unit -- --watch", "unit-inspect": "cross-env UI5_LOG_LVL=verbose ava debug --break", "coverage": "rimraf test/tmp && nyc ava --node-arguments=\"--experimental-loader=@istanbuljs/esm-loader-hook\"", - "preversion": "npm test", - "version": "git-chglog --sort semver --next-tag v$npm_package_version -o CHANGELOG.md v4.0.0.. && git add CHANGELOG.md", - "prepublishOnly": "git push --follow-tags", - "release-note": "git-chglog --sort semver -c .chglog/release-config.yml v$npm_package_version", "depcheck": "depcheck --ignores @ui5/logger,rimraf,@istanbuljs/esm-loader-hook,cross-env" }, "files": [ @@ -47,52 +43,6 @@ "lib/**", "LICENSES/**" ], - "ava": { - "files": [ - "test/lib/**/*.js" - ], - "nodeArguments": [ - "--no-warnings" - ], - "workerThreads": false - }, - "nyc": { - "reporter": [ - "lcov", - "text", - "text-summary" - ], - "exclude": [ - "docs/**", - "coverage/**", - "test/**" - ], - "check-coverage": true, - "statements": 90, - "branches": 90, - "functions": 90, - "lines": 90, - "watermarks": { - "statements": [ - 70, - 90 - ], - "branches": [ - 70, - 90 - ], - "functions": [ - 70, - 90 - ], - "lines": [ - 70, - 90 - ] - }, - "cache": true, - "all": true - }, "repository": { "type": "git", "url": "git+ssh://git@github.com/UI5/cli.git", diff --git a/packages/logger/test/lib/writers/Console.js b/packages/logger/test/lib/writers/Console.js index 3f745ba6f0b..e195e62e488 100644 --- a/packages/logger/test/lib/writers/Console.js +++ b/packages/logger/test/lib/writers/Console.js @@ -32,6 +32,22 @@ test.serial("Log event", (t) => { "Logged expected message"); }); +test.serial("Log event with invalid log level 'silent'", (t) => { + const {stderrWriteStub} = t.context; + + t.throws(() => { + process.emit("ui5.log", { + level: "silent", + message: "Message 1", + moduleName: "my:module" + }); + }, { + message: `writers/Console: Invalid message log level "silent"` + }); + + t.is(stderrWriteStub.callCount, 0, "Logged no message"); +}); + test.serial("Enable", (t) => { const {stderrWriteStub} = t.context; diff --git a/packages/project/ava.config.js b/packages/project/ava.config.js new file mode 100644 index 00000000000..64c839940ec --- /dev/null +++ b/packages/project/ava.config.js @@ -0,0 +1,3 @@ +import avaCommonConfig from "../../ava.common.config.js"; + +export default avaCommonConfig; diff --git a/packages/project/nyc.config.js b/packages/project/nyc.config.js new file mode 100644 index 00000000000..27aae218f35 --- /dev/null +++ b/packages/project/nyc.config.js @@ -0,0 +1,9 @@ +import nycCommonConfig from "../../nyc.common.config.js"; + +export default { + ...nycCommonConfig, + "statements": 95, + "branches": 90, + "functions": 95, + "lines": 95, +}; diff --git a/packages/project/package.json b/packages/project/package.json index 231e384a973..b75e62d845c 100644 --- a/packages/project/package.json +++ b/packages/project/package.json @@ -44,10 +44,6 @@ "unit-watch": "npm run unit -- --watch", "unit-inspect": "cross-env UI5_LOG_LVL=verbose ava debug --break", "coverage": "rimraf test/tmp && nyc ava --node-arguments=\"--experimental-loader=@istanbuljs/esm-loader-hook\"", - "preversion": "npm test", - "version": "git-chglog --sort semver --next-tag v$npm_package_version -o CHANGELOG.md v4.0.0.. && git add CHANGELOG.md", - "prepublishOnly": "git push --follow-tags", - "release-note": "git-chglog --sort semver -c .chglog/release-config.yml v$npm_package_version", "depcheck": "depcheck --ignores @ui5/project,@istanbuljs/esm-loader-hook,rimraf,sap" }, "files": [ @@ -55,54 +51,6 @@ "lib/**", "LICENSES/**" ], - "ava": { - "files": [ - "test/lib/**/*.js", - "!test/**/__helper__/**" - ], - "nodeArguments": [ - "--loader=esmock", - "--no-warnings" - ], - "workerThreads": false - }, - "nyc": { - "reporter": [ - "lcov", - "text", - "text-summary" - ], - "exclude": [ - "docs/**", - "coverage/**", - "test/**" - ], - "check-coverage": true, - "statements": 90, - "branches": 85, - "functions": 90, - "lines": 90, - "watermarks": { - "statements": [ - 70, - 90 - ], - "branches": [ - 70, - 90 - ], - "functions": [ - 70, - 90 - ], - "lines": [ - 70, - 90 - ] - }, - "cache": true, - "all": true - }, "repository": { "type": "git", "url": "git+ssh://git@github.com/UI5/cli.git", diff --git a/packages/project/test/lib/build/TaskRunner.js b/packages/project/test/lib/build/TaskRunner.js index 73c9e187648..84b46bb9bbe 100644 --- a/packages/project/test/lib/build/TaskRunner.js +++ b/packages/project/test/lib/build/TaskRunner.js @@ -1448,6 +1448,17 @@ test("getRequiredDependencies: Default application", async (t) => { "Default application project does not require dependencies"); }); +test("getRequiredDependencies: Default component", async (t) => { + const {graph, taskUtil, taskRepository, TaskRunner, projectBuildLogger} = t.context; + const project = getMockProject("component"); + project.getBundles = () => []; + const taskRunner = new TaskRunner({ + project, graph, taskUtil, taskRepository, log: projectBuildLogger, buildConfig + }); + t.deepEqual(await taskRunner.getRequiredDependencies(), new Set([]), + "Default component project does not require dependencies"); +}); + test("getRequiredDependencies: Default library", async (t) => { const {graph, taskUtil, taskRepository, TaskRunner, projectBuildLogger} = t.context; const project = getMockProject("library"); diff --git a/packages/server/ava.config.js b/packages/server/ava.config.js new file mode 100644 index 00000000000..64c839940ec --- /dev/null +++ b/packages/server/ava.config.js @@ -0,0 +1,3 @@ +import avaCommonConfig from "../../ava.common.config.js"; + +export default avaCommonConfig; diff --git a/packages/server/nyc.config.js b/packages/server/nyc.config.js new file mode 100644 index 00000000000..a9ece69ca71 --- /dev/null +++ b/packages/server/nyc.config.js @@ -0,0 +1,12 @@ +import nycCommonConfig from "../../nyc.common.config.js"; + +// Exclude TestRunner files from coverage as they are originally maintained at https://github.com/UI5/openui5/tree/master/src/sap.ui.core/test/sap/ui/qunit +nycCommonConfig.exclude.push("lib/middleware/testRunner/TestRunner.js"); + +export default { + ...nycCommonConfig, + "statements": 90, + "branches": 85, + "functions": 95, + "lines": 90, +}; diff --git a/packages/server/package.json b/packages/server/package.json index 390fdb9e0d1..81dc2af8a4a 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -36,10 +36,6 @@ "unit-watch": "npm run unit -- --watch", "unit-inspect": "cross-env UI5_LOG_LVL=verbose ava debug --break", "coverage": "rimraf test/tmp && nyc ava --node-arguments=\"--experimental-loader=@istanbuljs/esm-loader-hook\"", - "preversion": "npm test", - "version": "git-chglog --sort semver --next-tag v$npm_package_version -o CHANGELOG.md v4.0.0.. && git add CHANGELOG.md", - "prepublishOnly": "git push --follow-tags", - "release-note": "git-chglog --sort semver -c .chglog/release-config.yml v$npm_package_version", "depcheck": "depcheck --ignores @ui5/server,compression,cors,@istanbuljs/esm-loader-hook --parsers='**/*.js:es6,**/*.cjs:es6'" }, "files": [ @@ -47,21 +43,6 @@ "lib/**", "LICENSES/**" ], - "ava": { - "files": [ - "test/lib/**/*.js" - ], - "watchMode": { - "ignoreChanges": [ - "test/tmp/**" - ] - }, - "workerThreads": false, - "nodeArguments": [ - "--loader=esmock", - "--no-warnings" - ] - }, "nyc": { "reporter": [ "lcov",