初始化上传
Some checks failed
Run mypy_primer on push / Run mypy_primer on push (push) Has been cancelled
Validation / Typecheck (push) Has been cancelled
Validation / Style (push) Has been cancelled
Validation / Test macos-latest (push) Has been cancelled
Validation / Test ubuntu-latest (push) Has been cancelled
Validation / Test windows-latest (push) Has been cancelled
Validation / Build (push) Has been cancelled
Validation / Required (push) Has been cancelled
Some checks failed
Run mypy_primer on push / Run mypy_primer on push (push) Has been cancelled
Validation / Typecheck (push) Has been cancelled
Validation / Style (push) Has been cancelled
Validation / Test macos-latest (push) Has been cancelled
Validation / Test ubuntu-latest (push) Has been cancelled
Validation / Test windows-latest (push) Has been cancelled
Validation / Build (push) Has been cancelled
Validation / Required (push) Has been cancelled
This commit is contained in:
73
packages/pyright-internal/jest.config.js
Normal file
73
packages/pyright-internal/jest.config.js
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* jest.config.js
|
||||
*
|
||||
* Configuration for jest tests.
|
||||
*/
|
||||
|
||||
// When PYLANCE_JEST_TRANSPILE_ONLY=1 (set by pyrx CI), switch ts-jest into transpile-only
|
||||
// mode via `isolatedModules: true` (uses `tsc.transpileModule`, no type checking — much
|
||||
// faster). Tests are still type-checked by the dedicated `Typecheck` CI job. When unset
|
||||
// (default / local dev), ts-jest runs with full type-checking so type errors still surface.
|
||||
//
|
||||
// We intentionally stay on ts-jest in both modes so the emitted JS is byte-identical to the
|
||||
// local-dev configuration. Alternative transformers like @swc/jest can break edge cases the
|
||||
// rest of the test suite relies on (e.g. `jest.spyOn` on namespace exports — SWC emits
|
||||
// non-configurable getters — or `override readonly field!:` subclass fields, which SWC
|
||||
// re-defines after `super()` returns and so wipes the parent's assignment).
|
||||
const useTranspileOnly = process.env.PYLANCE_JEST_TRANSPILE_ONLY === '1';
|
||||
|
||||
// In transpile-only mode we pass an inline compilerOptions object so we can force
|
||||
// `module: 'commonjs'`. The parent tsconfig chain sets `module: 'node16'`, which would
|
||||
// otherwise leave dynamic `import()` calls untransformed — those then require
|
||||
// `--experimental-vm-modules` under Jest. The set of options below mirrors the bits of
|
||||
// `tsconfig.jest.json` that matter for `tsc.transpileModule`.
|
||||
const transpileOnlyTsconfig = {
|
||||
target: 'es2019',
|
||||
module: 'commonjs',
|
||||
moduleResolution: 'node',
|
||||
esModuleInterop: true,
|
||||
allowSyntheticDefaultImports: true,
|
||||
experimentalDecorators: true,
|
||||
resolveJsonModule: true,
|
||||
isolatedModules: true,
|
||||
preserveConstEnums: false,
|
||||
baseUrl: '.',
|
||||
paths: {
|
||||
'vscode-languageserver': ['./node_modules/vscode-languageserver/lib/common/api'],
|
||||
'vscode-languageserver/node': ['./node_modules/vscode-languageserver/lib/node/main'],
|
||||
'vscode-languageserver-protocol': ['./node_modules/vscode-languageserver-protocol/lib/common/api'],
|
||||
'vscode-languageserver-textdocument': ['./node_modules/vscode-languageserver-textdocument/lib/umd/main'],
|
||||
'vscode-languageserver-types': ['./node_modules/vscode-languageserver-types/lib/umd/main'],
|
||||
'vscode-jsonrpc': ['./node_modules/vscode-jsonrpc/lib/common/api'],
|
||||
'vscode-jsonrpc/node': ['./node_modules/vscode-jsonrpc/lib/node/main'],
|
||||
},
|
||||
};
|
||||
|
||||
const transform = {
|
||||
'^.+\\.tsx?$': [
|
||||
'ts-jest',
|
||||
useTranspileOnly
|
||||
? {
|
||||
tsconfig: transpileOnlyTsconfig,
|
||||
isolatedModules: true,
|
||||
diagnostics: false,
|
||||
}
|
||||
: {
|
||||
tsconfig: 'tsconfig.jest.json',
|
||||
diagnostics: {
|
||||
ignoreCodes: [151002],
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
testEnvironment: 'node',
|
||||
roots: ['<rootDir>/src/tests'],
|
||||
transform,
|
||||
// Place jest's transform cache inside node_modules so the existing node_modules CI cache
|
||||
// preserves it across runs.
|
||||
cacheDirectory: '<rootDir>/node_modules/.cache/jest',
|
||||
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
|
||||
};
|
||||
Reference in New Issue
Block a user