Skip to content

Commit 6bce80a

Browse files
committed
Merge branch 'main' into VSCODE-703-add-install-tests-for-VSCode-extension
2 parents fc51c11 + 031b770 commit 6bce80a

File tree

8 files changed

+2152
-1333
lines changed

8 files changed

+2152
-1333
lines changed

.github/workflows/actions/test-and-build/action.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ runs:
117117
env:
118118
SNYK_TOKEN: ${{ inputs.SNYK_TOKEN }}
119119
run: |
120-
pnpm run snyk-test > /dev/null 2>&1
120+
pnpm run snyk-test
121121
122122
- name: Upload Snyk Report
123123
if: runner.os == 'Linux'

package.json

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
"pretest": "pnpm run compile",
5656
"test": "pnpm run test-webview && pnpm run test-extension",
5757
"test-extension": "cross-env MDB_IS_TEST=true NODE_OPTIONS=--no-force-async-hooks-checks xvfb-maybe node ./out/test/runTest.js",
58-
"test-webview": "mocha -r ts-node/register --grep=\"${MOCHA_GREP}\" --file ./src/test/setup-webview.ts src/test/suite/views/webview-app/**/*.test.tsx",
58+
"test-webview": "mocha -r ts-node/register --exit --grep=\"${MOCHA_GREP}\" --file ./src/test/setup-webview.ts src/test/suite/views/webview-app/**/*.test.tsx",
5959
"ai-accuracy-tests": "env TS_NODE_FILES=true mocha -r ts-node/register --grep=\"${MOCHA_GREP}\" --file ./src/test/ai-accuracy-tests/test-setup.ts ./src/test/ai-accuracy-tests/ai-accuracy-tests.ts",
6060
"analyze-bundle": "webpack --mode production --analyze",
6161
"vscode:prepublish": "pnpm run clean && pnpm run compile:constants && pnpm run compile:resources && webpack --mode production",
@@ -1403,7 +1403,7 @@
14031403
"@babel/core": "^7.25.8",
14041404
"@babel/parser": "^7.25.8",
14051405
"@babel/traverse": "^7.25.7",
1406-
"@mongodb-js/compass-components": "^1.38.1",
1406+
"@mongodb-js/compass-components": "^1.59.2",
14071407
"@mongodb-js/connection-form": "^1.52.3",
14081408
"@mongodb-js/connection-info": "^0.21.0",
14091409
"@mongodb-js/device-id": "^0.3.2",
@@ -1424,7 +1424,7 @@
14241424
"mongodb-connection-string-url": "^3.0.2",
14251425
"mongodb-data-service": "^22.30.1",
14261426
"mongodb-log-writer": "^2.4.1",
1427-
"mongodb-mcp-server": "^1.3.0-pre.2",
1427+
"mongodb-mcp-server": "^1.3.0",
14281428
"mongodb-query-parser": "^4.4.2",
14291429
"mongodb-schema": "^12.6.3",
14301430
"node-machine-id": "1.1.12",
@@ -1441,7 +1441,7 @@
14411441
"devDependencies": {
14421442
"@babel/preset-typescript": "^7.25.7",
14431443
"@babel/types": "^7.25.8",
1444-
"@modelcontextprotocol/sdk": "^1.18.2",
1444+
"@modelcontextprotocol/sdk": "^1.24.0",
14451445
"@mongodb-js/oidc-mock-provider": "^0.11.5",
14461446
"@mongodb-js/oidc-plugin": "^2.0.5",
14471447
"@mongodb-js/prettier-config-devtools": "^1.0.2",
@@ -1469,12 +1469,11 @@
14691469
"@typescript-eslint/eslint-plugin": "^5.62.0",
14701470
"@typescript-eslint/parser": "^5.62.0",
14711471
"@vscode/test-electron": "^2.4.1",
1472-
"@vscode/vsce": "^3.2.0",
1472+
"@vscode/vsce": "^3.7.1",
14731473
"buffer": "^6.0.3",
14741474
"chai": "^4.5.0",
14751475
"chai-as-promised": "^7.1.2",
14761476
"cross-env": "^7.0.3",
1477-
"crypto-browserify": "^3.12.0",
14781477
"depcheck": "^1.4.7",
14791478
"duplicate-package-checker-webpack-plugin": "^3.0.0",
14801479
"eslint": "^8.57.1",
@@ -1499,7 +1498,6 @@
14991498
"path-browserify": "^1.0.1",
15001499
"prettier": "^3.5.3",
15011500
"process": "^0.11.10",
1502-
"rewiremock": "^3.14.5",
15031501
"rimraf": "^6.1.2",
15041502
"semver": "^7.7.3",
15051503
"sinon": "^9.2.4",
@@ -1521,10 +1519,7 @@
15211519
"pnpm": {
15221520
"overrides": {
15231521
"react": "^18.3.1",
1524-
"@mongodb-js/compass-logging": "^1.7.18",
1525-
"@mongodb-js/compass-utils": "^0.9.16",
1526-
"@mongodb-js/compass-components": "1.38.1",
1527-
"parse-asn1": "5.1.6"
1522+
"jsonwebtoken>jws": "3.2.3"
15281523
}
15291524
}
15301525
}

pnpm-lock.yaml

Lines changed: 2113 additions & 1316 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/snyk-test.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ async function snykTest(cwd) {
3434
return res;
3535
} catch (err) {
3636
console.error(`testing ${cwd} failed. ${err.message}`);
37+
throw err;
3738
} finally {
3839
try {
3940
await fs.rm(tmpPath);
@@ -48,6 +49,11 @@ async function main() {
4849
await fs.mkdir(path.join(rootPath, `.sbom`), { recursive: true });
4950
const results = await snykTest(rootPath);
5051

52+
if (!results) {
53+
console.error('Snyk test failed to produce results');
54+
process.exit(1);
55+
}
56+
5157
await fs.writeFile(
5258
path.join(rootPath, `.sbom/snyk-test-result.json`),
5359
JSON.stringify(results, null, 2),
@@ -66,4 +72,7 @@ async function main() {
6672
);
6773
}
6874

69-
main();
75+
main().catch((err) => {
76+
console.error('Snyk test failed:', err);
77+
process.exit(1);
78+
});

src/test/ai-accuracy-tests/test-setup.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import rewiremock from 'rewiremock';
1+
import Module from 'module';
22

33
const AssistantRole = 2;
44
const UserRole = 1;
@@ -36,5 +36,11 @@ const vscodeMock = {
3636

3737
// Mock the 'vscode' module since we don't run the full vscode
3838
// integration test setup for the ai-accuracy-tests as it's a bit slow.
39-
rewiremock('vscode').with(vscodeMock);
40-
rewiremock.enable();
39+
// eslint-disable-next-line @typescript-eslint/unbound-method
40+
const originalRequire = Module.prototype.require;
41+
Module.prototype.require = function (id: string): any {
42+
if (id === 'vscode') {
43+
return vscodeMock;
44+
}
45+
return originalRequire.call(this, id);
46+
};

src/utils/crypto-shim.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// Empty crypto shim for webpack webview bundle
2+
module.exports = {};

src/views/webview-app/connection-form.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ const ConnectionForm: React.FunctionComponent<
6868
// modal releases.
6969
contentClassName={modalContentStyles}
7070
setOpen={(): void => onClose()}
71+
darkMode={darkMode}
7172
open={open}
7273
size="large"
7374
>

webpack.config.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,13 +172,22 @@ module.exports = (env, argv) => {
172172
fallback: {
173173
stream: require.resolve('stream-browserify'),
174174
buffer: require.resolve('buffer'),
175-
crypto: require.resolve('crypto-browserify'),
175+
// TODO(VSCODE-715): Remove this once we bump compass-components.
176+
crypto: path.resolve(__dirname, 'src/utils/crypto-shim.js'),
176177
path: require.resolve('path-browserify'),
177178
mongodb: false,
178179
},
179180
},
180181
module: {
181182
rules: [
183+
{
184+
test: /\.mjs$/,
185+
include: /node_modules/,
186+
type: 'javascript/auto',
187+
resolve: {
188+
fullySpecified: false,
189+
},
190+
},
182191
{
183192
test: /\.(ts|tsx)$/,
184193
loader: 'ts-loader',

0 commit comments

Comments
 (0)