From 17fc93e0113a7b84d1d893ac9ca077f4c69e9f5c Mon Sep 17 00:00:00 2001 From: gagik Date: Thu, 27 Nov 2025 15:15:48 +0100 Subject: [PATCH 1/3] chore: add mongosh.code-workspace for Mocha Test Explorer --- .mocharc.json | 5 + mongosh.code-workspace | 123 ++++++++++++++++++ package-lock.json | 70 ++++------ package.json | 3 +- packages/arg-parser/.mocharc.json | 7 + packages/arg-parser/package.json | 2 +- packages/async-rewriter2/.mocharc.json | 7 + packages/async-rewriter2/package.json | 2 +- packages/autocomplete/.mocharc.json | 7 + packages/autocomplete/package.json | 2 +- packages/browser-repl/.mocharc.json | 7 + .../src/iframe-runtime/iframe-runtime.spec.ts | 16 ++- packages/browser-runtime-core/.mocharc.json | 7 + packages/browser-runtime-core/package.json | 2 +- .../browser-runtime-electron/.mocharc.json | 7 + .../browser-runtime-electron/package.json | 2 +- packages/build/.mocharc.json | 7 + packages/build/package.json | 2 +- packages/cli-repl/.mocharc.json | 7 + packages/cli-repl/package.json | 2 +- packages/connectivity-tests/.mocharc.json | 4 + packages/e2e-tests/.mocharc.json | 11 ++ packages/e2e-tests/package.json | 2 +- packages/editor/.mocharc.json | 7 + packages/editor/package.json | 2 +- packages/errors/.mocharc.json | 7 + packages/errors/package.json | 2 +- packages/history/.mocharc.json | 7 + packages/history/package.json | 2 +- packages/i18n/.mocharc.json | 7 + packages/i18n/package.json | 2 +- packages/java-shell/.mocharc.json | 8 ++ packages/java-shell/package.json | 2 +- .../js-multiline-to-singleline/.mocharc.json | 7 + .../js-multiline-to-singleline/package.json | 2 +- packages/logging/.mocharc.json | 7 + packages/logging/package.json | 2 +- .../node-runtime-worker-thread/.mocharc.json | 11 ++ .../node-runtime-worker-thread/package.json | 2 +- packages/service-provider-core/.mocharc.json | 7 + packages/service-provider-core/package.json | 2 +- .../.mocharc.json | 7 + .../service-provider-node-driver/package.json | 2 +- packages/shell-api/.mocharc.json | 7 + packages/shell-api/package.json | 2 +- packages/shell-bson/.mocharc.json | 6 + packages/shell-bson/package.json | 2 +- packages/shell-evaluator/.mocharc.json | 7 + packages/shell-evaluator/package.json | 2 +- packages/snippet-manager/.mocharc.json | 7 + packages/snippet-manager/package.json | 2 +- packages/types/.mocharc.json | 6 + packages/types/package.json | 2 +- testing/dummy.spec.ts | 10 ++ 54 files changed, 376 insertions(+), 76 deletions(-) create mode 100644 .mocharc.json create mode 100644 mongosh.code-workspace create mode 100644 packages/arg-parser/.mocharc.json create mode 100644 packages/async-rewriter2/.mocharc.json create mode 100644 packages/autocomplete/.mocharc.json create mode 100644 packages/browser-repl/.mocharc.json create mode 100644 packages/browser-runtime-core/.mocharc.json create mode 100644 packages/browser-runtime-electron/.mocharc.json create mode 100644 packages/build/.mocharc.json create mode 100644 packages/cli-repl/.mocharc.json create mode 100644 packages/connectivity-tests/.mocharc.json create mode 100644 packages/e2e-tests/.mocharc.json create mode 100644 packages/editor/.mocharc.json create mode 100644 packages/errors/.mocharc.json create mode 100644 packages/history/.mocharc.json create mode 100644 packages/i18n/.mocharc.json create mode 100644 packages/java-shell/.mocharc.json create mode 100644 packages/js-multiline-to-singleline/.mocharc.json create mode 100644 packages/logging/.mocharc.json create mode 100644 packages/node-runtime-worker-thread/.mocharc.json create mode 100644 packages/service-provider-core/.mocharc.json create mode 100644 packages/service-provider-node-driver/.mocharc.json create mode 100644 packages/shell-api/.mocharc.json create mode 100644 packages/shell-bson/.mocharc.json create mode 100644 packages/shell-evaluator/.mocharc.json create mode 100644 packages/snippet-manager/.mocharc.json create mode 100644 packages/types/.mocharc.json create mode 100644 testing/dummy.spec.ts diff --git a/.mocharc.json b/.mocharc.json new file mode 100644 index 0000000000..a59721fa5b --- /dev/null +++ b/.mocharc.json @@ -0,0 +1,5 @@ +{ + "spec": ["testing/dummy.spec.ts"], + "exclude": ["packages/**", "node_modules/**"], + "node-option": ["no-experimental-strip-types=true"] +} diff --git a/mongosh.code-workspace b/mongosh.code-workspace new file mode 100644 index 0000000000..13ff037e84 --- /dev/null +++ b/mongosh.code-workspace @@ -0,0 +1,123 @@ +{ + "folders": [ + { + "name": "mongosh", + "path": "." + }, + { + "name": "πŸ“¦ @mongosh/arg-parser", + "path": "packages/arg-parser" + }, + { + "name": "πŸ“¦ @mongosh/async-rewriter2", + "path": "packages/async-rewriter2" + }, + { + "name": "πŸ“¦ @mongosh/autocomplete", + "path": "packages/autocomplete" + }, + { + "name": "πŸ“¦ @mongosh/browser-runtime-core", + "path": "packages/browser-runtime-core" + }, + { + "name": "πŸ“¦ @mongosh/browser-runtime-electron", + "path": "packages/browser-runtime-electron" + }, + { + "name": "πŸ“¦ @mongosh/build", + "path": "packages/build" + }, + { + "name": "πŸ“¦ @mongosh/cli-repl", + "path": "packages/cli-repl" + }, + { + "name": "πŸ“¦ @mongosh/connectivity-tests", + "path": "packages/connectivity-tests" + }, + { + "name": "πŸ“¦ @mongosh/e2e-tests", + "path": "packages/e2e-tests" + } + { + "name": "πŸ“¦ @mongosh/editor", + "path": "packages/editor" + }, + { + "name": "πŸ“¦ @mongosh/errors", + "path": "packages/errors" + } + { + "name": "πŸ“¦ @mongosh/history", + "path": "packages/history" + }, + { + "name": "πŸ“¦ @mongosh/i18n", + "path": "packages/i18n" + }, + { + "name": "πŸ“¦ @mongosh/java-shell", + "path": "packages/java-shell" + }, + { + "name": "πŸ“¦ @mongosh/js-multiline-to-singleline", + "path": "packages/js-multiline-to-singleline" + }, + { + "name": "πŸ“¦ @mongosh/logging", + "path": "packages/logging" + }, + { + "name": "πŸ“¦ @mongosh/node-runtime-worker-thread", + "path": "packages/node-runtime-worker-thread" + }, + { + "name": "πŸ“¦ @mongosh/service-provider-core", + "path": "packages/service-provider-core" + }, + { + "name": "πŸ“¦ @mongosh/service-provider-node-driver", + "path": "packages/service-provider-node-driver" + }, + { + "name": "πŸ“¦ @mongosh/shell-api", + "path": "packages/shell-api" + }, + { + "name": "πŸ“¦ @mongosh/shell-bson", + "path": "packages/shell-bson" + }, + { + "name": "πŸ“¦ @mongosh/shell-evaluator", + "path": "packages/shell-evaluator" + }, + { + "name": "πŸ“¦ @mongosh/snippet-manager", + "path": "packages/snippet-manager" + }, + { + "name": "πŸ“¦ @mongosh/types", + "path": "packages/types" + }, + { + "name": "πŸ“¦ @mongosh/browser-repl", + "path": "packages/browser-repl" + } + ], + "settings": { + "typescript.tsdk": "node_modules/typescript/lib", + "mochaExplorer.configFile": ".mocharc.json", + "mochaExplorer.timeout": 60000, + "mochaExplorer.files": "", + "mochaExplorer.ui": "bdd", + "mochaExplorer.esmLoader": false, + "mochaExplorer.monkeyPatch": true, + "mochaExplorer.autoload": true, + "testExplorer.codeLens": true, + "testExplorer.gutterDecoration": true + }, + "extensions": { + "recommendations": ["hbenl.vscode-mocha-test-adapter"] + } +} diff --git a/package-lock.json b/package-lock.json index 3c55e4414a..b6f1cff3b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,6 +53,7 @@ "@types/sinon-chai": "^4.0.0", "@types/which": "^1.3.2", "chai": "^6.2.1", + "chai-as-promised": "^8.0.2", "cross-env": "^6.0.3", "depcheck": "^1.4.7", "duplexpair": "^1.0.2", @@ -15982,6 +15983,19 @@ "node": ">=18" } }, + "node_modules/chai-as-promised": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.2.tgz", + "integrity": "sha512-1GadL+sEJVLzDjcawPM4kjfnL+p/9vrxiEUonowKOAzvVg0PixJUdtuDzdkDeQhK3zfOE76GqGkZIQ7/Adcrqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "check-error": "^2.1.1" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 7" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -16005,6 +16019,16 @@ "license": "MIT", "optional": true }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", @@ -37814,29 +37838,6 @@ "@types/chai": "*" } }, - "packages/cli-repl/node_modules/chai-as-promised": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.2.tgz", - "integrity": "sha512-1GadL+sEJVLzDjcawPM4kjfnL+p/9vrxiEUonowKOAzvVg0PixJUdtuDzdkDeQhK3zfOE76GqGkZIQ7/Adcrqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, - "packages/cli-repl/node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, "packages/connectivity-tests": { "name": "@mongosh/connectivity-tests", "version": "2.5.3", @@ -37889,29 +37890,6 @@ "@types/chai": "*" } }, - "packages/e2e-tests/node_modules/chai-as-promised": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.2.tgz", - "integrity": "sha512-1GadL+sEJVLzDjcawPM4kjfnL+p/9vrxiEUonowKOAzvVg0PixJUdtuDzdkDeQhK3zfOE76GqGkZIQ7/Adcrqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, - "packages/e2e-tests/node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, "packages/e2e-tests/node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", diff --git a/package.json b/package.json index 0cfd9388aa..c1e8591232 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,8 @@ "webpack-bundle-analyzer": "^4.7.0", "webpack-cli": "^6.0.1", "which": "^2.0.2", - "yaml": "^1.10.0" + "yaml": "^1.10.0", + "chai-as-promised": "^8.0.2" }, "optionalDependencies": { "lerna": "^8.1.8" diff --git a/packages/arg-parser/.mocharc.json b/packages/arg-parser/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/arg-parser/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/arg-parser/package.json b/packages/arg-parser/package.json index f8f0829232..6a18ce685d 100644 --- a/packages/arg-parser/package.json +++ b/packages/arg-parser/package.json @@ -11,7 +11,7 @@ "unsafe-perm": true }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register \"./{src,lib}/**/*.spec.ts\" --reporter \"../../configs/mocha-config-mongosh/reporter.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/async-rewriter2/.mocharc.json b/packages/async-rewriter2/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/async-rewriter2/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/async-rewriter2/package.json b/packages/async-rewriter2/package.json index 681b9b2458..8ca13eb5e8 100644 --- a/packages/async-rewriter2/package.json +++ b/packages/async-rewriter2/package.json @@ -6,7 +6,7 @@ "scripts": { "pretest": "npm run compile", "benchmark": "node -r ts-node/register benchmark/index.ts", - "test": "mocha --experimental-vm-modules -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register \"./{src,lib}/**/*.spec.ts\" --reporter \"../../configs/mocha-config-mongosh/reporter.ts\"", + "test": "mocha --experimental-vm-modules", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/autocomplete/.mocharc.json b/packages/autocomplete/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/autocomplete/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/autocomplete/package.json b/packages/autocomplete/package.json index 6b92f5c642..f8fb19a4c7 100644 --- a/packages/autocomplete/package.json +++ b/packages/autocomplete/package.json @@ -17,7 +17,7 @@ "node": ">=14.15.1" }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register \"./{src,lib}/**/*.spec.ts\" --reporter \"../../configs/mocha-config-mongosh/reporter.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/browser-repl/.mocharc.json b/packages/browser-repl/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/browser-repl/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/browser-repl/src/iframe-runtime/iframe-runtime.spec.ts b/packages/browser-repl/src/iframe-runtime/iframe-runtime.spec.ts index d8a7d1bed3..60f8d86b19 100644 --- a/packages/browser-repl/src/iframe-runtime/iframe-runtime.spec.ts +++ b/packages/browser-repl/src/iframe-runtime/iframe-runtime.spec.ts @@ -4,12 +4,12 @@ import type { ServiceProvider } from '@mongosh/service-provider-core'; import * as bson from 'bson'; describe('IframeRuntime', function () { - let runtime; - let serviceProvider; + let runtime: IframeRuntime; + let serviceProvider: ServiceProvider; beforeEach(function () { document.body.innerHTML = ''; - serviceProvider = { bsonLibrary: bson }; + serviceProvider = { bsonLibrary: bson } as unknown as ServiceProvider; runtime = new IframeRuntime(serviceProvider); }); @@ -21,8 +21,10 @@ describe('IframeRuntime', function () { const iframe = document.querySelector('iframe'); expect(iframe).to.exist; - expect(iframe.style.display).to.equal('none'); - expect(iframe.sandbox.value).to.equal('allow-same-origin'); + expect((iframe as HTMLIFrameElement).style.display).to.equal('none'); + expect((iframe as HTMLIFrameElement).sandbox.value).to.equal( + 'allow-same-origin' + ); }); }); @@ -47,7 +49,9 @@ describe('IframeRuntime', function () { }); it('does not interfere with other instances', async function () { - const other = new IframeRuntime({ bsonLibrary: bson } as ServiceProvider); + const other = new IframeRuntime({ + bsonLibrary: bson, + } as unknown as ServiceProvider); await runtime.evaluate('x = 1'); await other.evaluate('x = 2'); diff --git a/packages/browser-runtime-core/.mocharc.json b/packages/browser-runtime-core/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/browser-runtime-core/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/browser-runtime-core/package.json b/packages/browser-runtime-core/package.json index 32025c6a12..0bd44484ee 100644 --- a/packages/browser-runtime-core/package.json +++ b/packages/browser-runtime-core/package.json @@ -15,7 +15,7 @@ "url": "git://github.com/mongodb-js/mongosh.git" }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register \"./{src,lib}/**/*.spec.ts\" --reporter \"../../configs/mocha-config-mongosh/reporter.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/browser-runtime-electron/.mocharc.json b/packages/browser-runtime-electron/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/browser-runtime-electron/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/browser-runtime-electron/package.json b/packages/browser-runtime-electron/package.json index e4806656b6..f9d14f11b5 100644 --- a/packages/browser-runtime-electron/package.json +++ b/packages/browser-runtime-electron/package.json @@ -15,7 +15,7 @@ "url": "git://github.com/mongodb-js/mongosh.git" }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register \"./{src,lib}/**/*.spec.ts\" --reporter \"../../configs/mocha-config-mongosh/reporter.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/build/.mocharc.json b/packages/build/.mocharc.json new file mode 100644 index 0000000000..880a090542 --- /dev/null +++ b/packages/build/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 30000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/build/package.json b/packages/build/package.json index 20482a209c..1c13988c16 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -15,7 +15,7 @@ "scripts": { "compile": "tsc -p tsconfig.json", "prepublish": "npm run compile", - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 30000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/cli-repl/.mocharc.json b/packages/cli-repl/.mocharc.json new file mode 100644 index 0000000000..4a4e3c6882 --- /dev/null +++ b/packages/cli-repl/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/cli-repl/package.json b/packages/cli-repl/package.json index 0399d00e7e..ba974c60ee 100644 --- a/packages/cli-repl/package.json +++ b/packages/cli-repl/package.json @@ -21,7 +21,7 @@ "compile": "tsc -p tsconfig.json", "start": "node bin/mongosh.js", "pretest": "npm run compile", - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/connectivity-tests/.mocharc.json b/packages/connectivity-tests/.mocharc.json new file mode 100644 index 0000000000..3dca75e7be --- /dev/null +++ b/packages/connectivity-tests/.mocharc.json @@ -0,0 +1,4 @@ +{ + "spec": "../../testing/dummy.spec.ts", + "exclude": "**/**" +} diff --git a/packages/e2e-tests/.mocharc.json b/packages/e2e-tests/.mocharc.json new file mode 100644 index 0000000000..416694eeff --- /dev/null +++ b/packages/e2e-tests/.mocharc.json @@ -0,0 +1,11 @@ +{ + "require": [ + "ts-node/register", + "../../scripts/import-expansions.js", + "./test/test-shell-context.ts" + ], + "timeout": 15000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./test/*.spec.ts"], + "color": true +} diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json index 9c102c1f98..c1f1c17d5f 100644 --- a/packages/e2e-tests/package.json +++ b/packages/e2e-tests/package.json @@ -11,7 +11,7 @@ "url": "git://github.com/mongodb-js/mongosh.git" }, "scripts": { - "test": "mocha -r ts-node/register -r \"../../scripts/import-expansions.js\" -r \"./test/test-shell-context.ts\" --timeout 15000 --colors --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./test/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/editor/.mocharc.json b/packages/editor/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/editor/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/editor/package.json b/packages/editor/package.json index afbaf29c1a..9d3520a06a 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -11,7 +11,7 @@ "unsafe-perm": true }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./{src,lib}/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/errors/.mocharc.json b/packages/errors/.mocharc.json new file mode 100644 index 0000000000..8685630045 --- /dev/null +++ b/packages/errors/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 15000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/errors/package.json b/packages/errors/package.json index 426e9e24bf..6c1abeba79 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -17,7 +17,7 @@ "node": ">=14.15.1" }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 15000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/history/.mocharc.json b/packages/history/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/history/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/history/package.json b/packages/history/package.json index 532367fb19..7ddb518733 100644 --- a/packages/history/package.json +++ b/packages/history/package.json @@ -11,7 +11,7 @@ "unsafe-perm": true }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./{src,lib}/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/i18n/.mocharc.json b/packages/i18n/.mocharc.json new file mode 100644 index 0000000000..4a4e3c6882 --- /dev/null +++ b/packages/i18n/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 0c9fa2b69a..05a6e14d97 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -14,7 +14,7 @@ "scripts": { "compile": "tsc -p tsconfig.json", "prepublish": "npm run compile", - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/java-shell/.mocharc.json b/packages/java-shell/.mocharc.json new file mode 100644 index 0000000000..57688a3d1d --- /dev/null +++ b/packages/java-shell/.mocharc.json @@ -0,0 +1,8 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/test/js/run-tests.ts"], + "color": true +} + diff --git a/packages/java-shell/package.json b/packages/java-shell/package.json index c514bf7f0a..3e250ba655 100644 --- a/packages/java-shell/package.json +++ b/packages/java-shell/package.json @@ -12,7 +12,7 @@ }, "scripts": { "webpack-shell-api": "webpack --mode production", - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 --colors -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/test/js/run-tests.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm run test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci" diff --git a/packages/js-multiline-to-singleline/.mocharc.json b/packages/js-multiline-to-singleline/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/js-multiline-to-singleline/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/js-multiline-to-singleline/package.json b/packages/js-multiline-to-singleline/package.json index 4b8dea9cc7..43a6af4163 100644 --- a/packages/js-multiline-to-singleline/package.json +++ b/packages/js-multiline-to-singleline/package.json @@ -11,7 +11,7 @@ "unsafe-perm": true }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./{src,lib}/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/logging/.mocharc.json b/packages/logging/.mocharc.json new file mode 100644 index 0000000000..8685630045 --- /dev/null +++ b/packages/logging/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 15000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/logging/package.json b/packages/logging/package.json index 7a47adad61..ca4f0fc4f8 100644 --- a/packages/logging/package.json +++ b/packages/logging/package.json @@ -36,7 +36,7 @@ "sinon": "^19.0.4" }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 15000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/node-runtime-worker-thread/.mocharc.json b/packages/node-runtime-worker-thread/.mocharc.json new file mode 100644 index 0000000000..4336c6a468 --- /dev/null +++ b/packages/node-runtime-worker-thread/.mocharc.json @@ -0,0 +1,11 @@ +{ + "require": [ + "../../scripts/import-expansions.js", + "./tests/register-worker.js", + "ts-node/register" + ], + "timeout": 15000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/node-runtime-worker-thread/package.json b/packages/node-runtime-worker-thread/package.json index 35991756f5..1d224241a2 100644 --- a/packages/node-runtime-worker-thread/package.json +++ b/packages/node-runtime-worker-thread/package.json @@ -17,7 +17,7 @@ "node": ">=14.15.1" }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" -r \"./tests/register-worker.js \" --timeout 15000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "pretest-ci": "node ../../scripts/run-if-package-requested.js npm run webpack-build -- --no-stats --no-devtool", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", diff --git a/packages/service-provider-core/.mocharc.json b/packages/service-provider-core/.mocharc.json new file mode 100644 index 0000000000..4a4e3c6882 --- /dev/null +++ b/packages/service-provider-core/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/service-provider-core/package.json b/packages/service-provider-core/package.json index 268d413ed3..5b2ab5aa53 100644 --- a/packages/service-provider-core/package.json +++ b/packages/service-provider-core/package.json @@ -14,7 +14,7 @@ "scripts": { "compile": "tsc -p tsconfig.json", "prepublish": "npm run compile", - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/service-provider-node-driver/.mocharc.json b/packages/service-provider-node-driver/.mocharc.json new file mode 100644 index 0000000000..4a4e3c6882 --- /dev/null +++ b/packages/service-provider-node-driver/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/service-provider-node-driver/package.json b/packages/service-provider-node-driver/package.json index e8389623b2..f35c1f1284 100644 --- a/packages/service-provider-node-driver/package.json +++ b/packages/service-provider-node-driver/package.json @@ -13,7 +13,7 @@ }, "scripts": { "compile": "tsc -p tsconfig.json", - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/shell-api/.mocharc.json b/packages/shell-api/.mocharc.json new file mode 100644 index 0000000000..4a4e3c6882 --- /dev/null +++ b/packages/shell-api/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/shell-api/package.json b/packages/shell-api/package.json index ad6d5ca76d..89754bab8c 100644 --- a/packages/shell-api/package.json +++ b/packages/shell-api/package.json @@ -31,7 +31,7 @@ "depcheck": "depcheck", "report-missing-help": "ts-node bin/report-missing-help.ts", "report-supported-api": "ts-node bin/report-supported-api.ts", - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/shell-bson/.mocharc.json b/packages/shell-bson/.mocharc.json new file mode 100644 index 0000000000..01f375d0b9 --- /dev/null +++ b/packages/shell-bson/.mocharc.json @@ -0,0 +1,6 @@ +{ + "require": ["ts-node/register"], + "timeout": 15000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/*.spec.ts"] +} diff --git a/packages/shell-bson/package.json b/packages/shell-bson/package.json index 4bc26153f1..9b15105dd8 100644 --- a/packages/shell-bson/package.json +++ b/packages/shell-bson/package.json @@ -23,7 +23,7 @@ "eslint": "eslint", "lint": "npm run eslint . && npm run prettier -- --check .", "prepublish": "npm run compile", - "test": "mocha --timeout 15000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/shell-evaluator/.mocharc.json b/packages/shell-evaluator/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/shell-evaluator/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/shell-evaluator/package.json b/packages/shell-evaluator/package.json index abd923db78..f9409e4d33 100644 --- a/packages/shell-evaluator/package.json +++ b/packages/shell-evaluator/package.json @@ -4,7 +4,7 @@ "description": "MongoDB Top Level API Package", "main": "./lib/index.js", "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./{src,lib}/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/snippet-manager/.mocharc.json b/packages/snippet-manager/.mocharc.json new file mode 100644 index 0000000000..ed13f421cb --- /dev/null +++ b/packages/snippet-manager/.mocharc.json @@ -0,0 +1,7 @@ +{ + "require": ["../../scripts/import-expansions.js", "ts-node/register"], + "timeout": 60000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./{src,lib}/**/*.spec.ts"], + "exclude": ["**/node_modules/**"] +} diff --git a/packages/snippet-manager/package.json b/packages/snippet-manager/package.json index 616438af34..16b5ce66c0 100644 --- a/packages/snippet-manager/package.json +++ b/packages/snippet-manager/package.json @@ -11,7 +11,7 @@ "unsafe-perm": true }, "scripts": { - "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./{src,lib}/**/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/packages/types/.mocharc.json b/packages/types/.mocharc.json new file mode 100644 index 0000000000..01f375d0b9 --- /dev/null +++ b/packages/types/.mocharc.json @@ -0,0 +1,6 @@ +{ + "require": ["ts-node/register"], + "timeout": 15000, + "reporter": "../../configs/mocha-config-mongosh/reporter.ts", + "spec": ["./src/*.spec.ts"] +} diff --git a/packages/types/package.json b/packages/types/package.json index 0160a6b5ef..6333014805 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -24,7 +24,7 @@ "eslint": "eslint", "lint": "npm run eslint . && npm run prettier -- --check .", "prepublish": "npm run compile", - "test": "mocha --timeout 15000 -r ts-node/register --reporter \"../../configs/mocha-config-mongosh/reporter.ts\" \"./src/*.spec.ts\"", + "test": "mocha", "test-ci": "node ../../scripts/run-if-package-requested.js npm test", "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test", "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci", diff --git a/testing/dummy.spec.ts b/testing/dummy.spec.ts new file mode 100644 index 0000000000..6adff34a7f --- /dev/null +++ b/testing/dummy.spec.ts @@ -0,0 +1,10 @@ +// This is just a dummy test for make Mocha test explorer work. +// Should be removed as part of testing refactoring. +/* eslint-disable @typescript-eslint/ban-ts-comment */ +// @ts-ignore +describe('These tests are not run by Mocha Test explorer', function () { + // @ts-ignore + it('should pass', function () { + return true; + }); +}); From 9ba4e17453722cdb8f953069f121266441043e76 Mon Sep 17 00:00:00 2001 From: gagik Date: Thu, 27 Nov 2025 15:24:43 +0100 Subject: [PATCH 2/3] chore: remove chai, docs --- CONTRIBUTING.md | 3 +++ package-lock.json | 1 - package.json | 3 +-- testing/dummy.spec.ts | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 66693697df..8eb5b995ae 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,6 +15,9 @@ MongoDB welcomes community contributions! If you’re interested in making a con 1. Add comments around your new code that explain what's happening 1. Commit and push your changes to your branch then submit a pull request +## Running Tests on VSCode +You can use the `mongosh.code-workspace` file along with the [Mocha Test Explorer](https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-mocha-test-adapter) to run and debug tests in VSCode UI. + ## Bugs You can report new bugs by diff --git a/package-lock.json b/package-lock.json index b6f1cff3b3..861dab6bc7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,6 @@ "@types/sinon-chai": "^4.0.0", "@types/which": "^1.3.2", "chai": "^6.2.1", - "chai-as-promised": "^8.0.2", "cross-env": "^6.0.3", "depcheck": "^1.4.7", "duplexpair": "^1.0.2", diff --git a/package.json b/package.json index c1e8591232..0cfd9388aa 100644 --- a/package.json +++ b/package.json @@ -134,8 +134,7 @@ "webpack-bundle-analyzer": "^4.7.0", "webpack-cli": "^6.0.1", "which": "^2.0.2", - "yaml": "^1.10.0", - "chai-as-promised": "^8.0.2" + "yaml": "^1.10.0" }, "optionalDependencies": { "lerna": "^8.1.8" diff --git a/testing/dummy.spec.ts b/testing/dummy.spec.ts index 6adff34a7f..1ca52da59a 100644 --- a/testing/dummy.spec.ts +++ b/testing/dummy.spec.ts @@ -1,4 +1,4 @@ -// This is just a dummy test for make Mocha test explorer work. +// This is just a dummy test to make Mocha Test Explorer work. // Should be removed as part of testing refactoring. /* eslint-disable @typescript-eslint/ban-ts-comment */ // @ts-ignore From 8edcbd82aa1a26a651a85a4a369a054f050f85d1 Mon Sep 17 00:00:00 2001 From: gagik Date: Thu, 27 Nov 2025 15:29:01 +0100 Subject: [PATCH 3/3] chore: automate code-workspace creation with sort-workspaces --- mongosh.code-workspace | 98 ++++++++++++++++++++++---------------- scripts/sort-workspaces.js | 58 +++++++++++++++------- 2 files changed, 100 insertions(+), 56 deletions(-) diff --git a/mongosh.code-workspace b/mongosh.code-workspace index 13ff037e84..ff0dcf1955 100644 --- a/mongosh.code-workspace +++ b/mongosh.code-workspace @@ -5,57 +5,33 @@ "path": "." }, { - "name": "πŸ“¦ @mongosh/arg-parser", - "path": "packages/arg-parser" + "name": "πŸ“¦ @mongodb-js/eslint-config-mongosh", + "path": "configs/eslint-config-mongosh" }, { - "name": "πŸ“¦ @mongosh/async-rewriter2", - "path": "packages/async-rewriter2" + "name": "πŸ“¦ @mongodb-js/tsconfig-mongosh", + "path": "configs/tsconfig-mongosh" }, { - "name": "πŸ“¦ @mongosh/autocomplete", - "path": "packages/autocomplete" + "name": "πŸ“¦ @mongosh/docker-build-scripts", + "path": "scripts/docker" }, { - "name": "πŸ“¦ @mongosh/browser-runtime-core", - "path": "packages/browser-runtime-core" - }, - { - "name": "πŸ“¦ @mongosh/browser-runtime-electron", - "path": "packages/browser-runtime-electron" + "name": "πŸ“¦ @mongosh/async-rewriter2", + "path": "packages/async-rewriter2" }, { "name": "πŸ“¦ @mongosh/build", "path": "packages/build" }, - { - "name": "πŸ“¦ @mongosh/cli-repl", - "path": "packages/cli-repl" - }, - { - "name": "πŸ“¦ @mongosh/connectivity-tests", - "path": "packages/connectivity-tests" - }, - { - "name": "πŸ“¦ @mongosh/e2e-tests", - "path": "packages/e2e-tests" - } - { - "name": "πŸ“¦ @mongosh/editor", - "path": "packages/editor" - }, { "name": "πŸ“¦ @mongosh/errors", "path": "packages/errors" - } + }, { "name": "πŸ“¦ @mongosh/history", "path": "packages/history" }, - { - "name": "πŸ“¦ @mongosh/i18n", - "path": "packages/i18n" - }, { "name": "πŸ“¦ @mongosh/java-shell", "path": "packages/java-shell" @@ -64,13 +40,25 @@ "name": "πŸ“¦ @mongosh/js-multiline-to-singleline", "path": "packages/js-multiline-to-singleline" }, + { + "name": "πŸ“¦ @mongosh/types", + "path": "packages/types" + }, + { + "name": "πŸ“¦ @mongosh/i18n", + "path": "packages/i18n" + }, { "name": "πŸ“¦ @mongosh/logging", "path": "packages/logging" }, { - "name": "πŸ“¦ @mongosh/node-runtime-worker-thread", - "path": "packages/node-runtime-worker-thread" + "name": "πŸ“¦ @mongosh/shell-bson", + "path": "packages/shell-bson" + }, + { + "name": "πŸ“¦ @mongosh/arg-parser", + "path": "packages/arg-parser" }, { "name": "πŸ“¦ @mongosh/service-provider-core", @@ -85,8 +73,8 @@ "path": "packages/shell-api" }, { - "name": "πŸ“¦ @mongosh/shell-bson", - "path": "packages/shell-bson" + "name": "πŸ“¦ @mongosh/autocomplete", + "path": "packages/autocomplete" }, { "name": "πŸ“¦ @mongosh/shell-evaluator", @@ -97,12 +85,40 @@ "path": "packages/snippet-manager" }, { - "name": "πŸ“¦ @mongosh/types", - "path": "packages/types" + "name": "πŸ“¦ @mongosh/browser-runtime-core", + "path": "packages/browser-runtime-core" + }, + { + "name": "πŸ“¦ @mongosh/editor", + "path": "packages/editor" + }, + { + "name": "πŸ“¦ @mongosh/browser-runtime-electron", + "path": "packages/browser-runtime-electron" + }, + { + "name": "πŸ“¦ @mongosh/cli-repl", + "path": "packages/cli-repl" + }, + { + "name": "πŸ“¦ @mongosh/e2e-tests", + "path": "packages/e2e-tests" + }, + { + "name": "πŸ“¦ mongosh", + "path": "packages/mongosh" + }, + { + "name": "πŸ“¦ @mongosh/node-runtime-worker-thread", + "path": "packages/node-runtime-worker-thread" }, { "name": "πŸ“¦ @mongosh/browser-repl", "path": "packages/browser-repl" + }, + { + "name": "πŸ“¦ @mongosh/connectivity-tests", + "path": "packages/connectivity-tests" } ], "settings": { @@ -118,6 +134,8 @@ "testExplorer.gutterDecoration": true }, "extensions": { - "recommendations": ["hbenl.vscode-mocha-test-adapter"] + "recommendations": [ + "hbenl.vscode-mocha-test-adapter" + ] } } diff --git a/scripts/sort-workspaces.js b/scripts/sort-workspaces.js index d76f6a9c70..c2b8895058 100755 --- a/scripts/sort-workspaces.js +++ b/scripts/sort-workspaces.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -const fs = require('fs').promises; -const path = require('path'); -const util = require('util'); -const exec = util.promisify(require('child_process').exec); +const fs = require("fs").promises; +const path = require("path"); +const util = require("util"); +const exec = util.promisify(require("child_process").exec); -process.on('unhandledRejection', (err) => { +process.on("unhandledRejection", (err) => { console.error(); console.error(err?.stack || err?.message || err); process.exitCode = 1; @@ -14,21 +14,47 @@ process.on('unhandledRejection', (err) => { async function main() { if (process.env.CI) return; - const monorepoRoot = path.resolve(__dirname, '..'); + const monorepoRoot = path.resolve(__dirname, ".."); - const packageJSON = JSON.parse(await fs.readFile( - path.join(monorepoRoot, 'package.json'), - 'utf8' - )); + // Get sorted packages from lerna + const { stdout } = await exec("npx -y lerna ls --all --toposort --json"); + const packages = JSON.parse(stdout); - // should use the scopes in lerna.json - const { stdout } = await exec('npx -y lerna ls --all --toposort --json'); - packageJSON.workspaces = JSON.parse(stdout).map(({ location }) => path.relative(monorepoRoot, location)); + // Update package.json + const packageJSON = JSON.parse( + await fs.readFile(path.join(monorepoRoot, "package.json"), "utf8") + ); + + packageJSON.workspaces = packages.map(({ location }) => + path.relative(monorepoRoot, location) + ); + + await fs.writeFile( + path.join(monorepoRoot, "package.json"), + JSON.stringify(packageJSON, null, 2) + "\n", + "utf8" + ); + + // Update mongosh.code-workspace + const workspaceFile = path.join(monorepoRoot, "mongosh.code-workspace"); + const workspace = JSON.parse(await fs.readFile(workspaceFile, "utf8")); + + // Keep the root folder and regenerate package folders in topological order + workspace.folders = [ + { + name: "mongosh", + path: ".", + }, + ...packages.map(({ name, location }) => ({ + name: `πŸ“¦ ${name}`, + path: path.relative(monorepoRoot, location), + })), + ]; await fs.writeFile( - path.join(monorepoRoot, 'package.json'), - JSON.stringify(packageJSON, null, 2) + '\n', - 'utf8' + workspaceFile, + JSON.stringify(workspace, null, 2) + "\n", + "utf8" ); }