Skip to content

Commit d6fecdf

Browse files
authored
fix(tests): Cannot find module .../amazonq-webview.css #4804
Problem: - a css file was added into mynah ui and jsdom can't load external css files so the e2e tests fail to load Error: Cannot find module '../../../../resources/css/amazonq-webview.css' Require stack: - /codebuild/output/src201842960/src/github.com/aws/aws-toolkit-vscode/packages/core/dist/src/amazonq/webview/ui/main.js - /codebuild/output/src201842960/src/github.com/aws/aws-toolkit-vscode/packages/core/dist/src/testE2E/amazonq/framework/framework.js - /codebuild/output/src201842960/src/github.com/aws/aws-toolkit-vscode/packages/core/dist/src/testE2E/amazonq/featureDev.test.js - /codebuild/output/src201842960/src/github.com/aws/aws-toolkit-vscode/node_modules/mocha/lib/mocha.js - /codebuild/output/src201842960/src/github.com/aws/aws-toolkit-vscode/node_modules/mocha/index.js - /codebuild/output/src201842960/src/github.com/aws/aws-toolkit-vscode/packages/core/dist/src/test/testRunner.js - /codebuild/output/src201842960/src/github.com/aws/aws-toolkit-vscode/packages/core/dist/src/testE2E/index.js - /tmp/.vscode-test/vscode-linux-x64-1.88.1/resources/app/out/vs/loader.js - /tmp/.vscode-test/vscode-linux-x64-1.88.1/resources/app/out/bootstrap-amd.js - /tmp/.vscode-test/vscode-linux-x64-1.88.1/resources/app/out/bootstrap-fork.js at Module._resolveFilename (node:internal/modules/cjs/loader:1084:15) at Function.i._resolveFilename (node:electron/js2c/utility_init:2:13405) at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/codebuild/output/src201842960/src/github.com/aws/aws-toolkit-vscode/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30) at Module._load (node:internal/modules/cjs/loader:929:27) at Function.c._load (node:electron/js2c/node_init:2:13672) at Function.h._load (/tmp/.vscode-test/vscode-linux-x64-1.88.1/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:175:5602) at Function.i._load (/tmp/.vscode-test/vscode-linux-x64-1.88.1/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:172:29719) at Function.t._load (/tmp/.vscode-test/vscode-linux-x64-1.88.1/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:137:35279) at Module.require (node:internal/modules/cjs/loader:1150:19) Solution: - HACK: ignore amazonq-webview.css in the module loader
1 parent 3b4e7ed commit d6fecdf

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

packages/core/src/testE2E/amazonq/featureDev.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6+
import { overrideRequire, resetRequire } from './framework/setup'
7+
overrideRequire()
8+
69
import assert from 'assert'
710
import { qTestingFramework } from './framework/framework'
811
import sinon from 'sinon'
@@ -52,6 +55,10 @@ describe('Amazon Q Feature Dev', function () {
5255
sinon.restore()
5356
})
5457

58+
after(() => {
59+
resetRequire()
60+
})
61+
5562
describe('quick action availability', () => {
5663
it('Shows /dev when feature dev is enabled', async () => {
5764
const command = tab.findCommand('/dev')
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*!
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
import Module from 'module'
7+
8+
const originalRequire = Module.prototype.require
9+
10+
export function overrideRequire() {
11+
Module.prototype.require = new Proxy(Module.prototype.require, {
12+
apply(target, thisArg, argArray) {
13+
const name = argArray[0]
14+
15+
/**
16+
* HACK: css can't be loaded into jsdom so we have to ignore it
17+
*/
18+
if (name.endsWith('amazonq-webview.css')) {
19+
return {}
20+
}
21+
22+
return Reflect.apply(target, thisArg, argArray)
23+
},
24+
})
25+
}
26+
27+
export function resetRequire() {
28+
Module.prototype.require = originalRequire
29+
}

0 commit comments

Comments
 (0)