Files
qwen-code/packages/web-shell/vitest.config.ts
T
a8eb74fdf5 fix(web-shell): polish files and trim preview resources (#14143)
* fix(web-shell): polish files and trim preview resources

* test(cli): observe pending child Hook promises

* fix(web-shell): address Files browser review findings

* fix(vscode): sync Pierre modification notices

* chore: ignore the repo-local .pnpm-store fallback directory

pnpm falls back to a project-local store at .pnpm-store/ when the global
store directory is not writable (e.g. sandboxed CI runners). It is a
regenerable cache that node_modules hard-links into; its thousands of
untracked files otherwise dirty the working tree and fail deterministic
workspace-clean verification.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(web-shell): address Pierre preview and file display review findings

- getPreviewLanguage folds case on the extension only, so README.MD and
  config.YML highlight while whole-name detector keys (Gemfile, BUILD)
  keep their case-sensitive behavior
- formatFileName strips the full Default_Ignorable_Code_Point class so
  zero-advance Hangul fillers and variation selectors cannot desync the
  tree search projection from the rendered name
- pin the previously unwitnessed pierre-build guards: redirected Shiki
  subpaths count toward the 4 MiB budget, getModuleInfo may return null
  for redirected ids, emitted assets are skipped, and entry-module
  resolveId calls carry no importer
- pin the theme name->module mapping with exact token colors and give
  the formatFileName display sites discriminating coverage with
  repeated-space names

---------

Co-authored-by: 钉萁 <[email protected]>
Co-authored-by: qwen-code[bot] <qwen-code[bot]@users.noreply.github.com>
Co-authored-by: Qwen-Coder <[email protected]>
Co-authored-by: qwen-code-dev-bot <[email protected]>
2026-10-16 16:45:56 +08:00

56 lines
1.8 KiB
TypeScript

import { configDefaults, defineConfig } from 'vitest/config';
import { resolve } from 'node:path';
import { pierreResources } from './pierre-build';
export default defineConfig({
plugins: [pierreResources()],
root: 'client',
resolve: {
alias: {
'@qwen-code/web-shell/daemon-react-sdk': resolve(
__dirname,
'./client/daemon-react-sdk.ts',
),
'@qwen-code/web-shell/transcript': resolve(
__dirname,
'./client/transcript.ts',
),
'@': resolve(__dirname, './client'),
},
},
test: {
server: { deps: { inline: ['@pierre/diffs'] } },
setupFiles: ['./test/setup.ts'],
// Same shared-ECS ceilings as packages/cli: the jsdom component tests
// here were the bulk of the release failures at vitest's 5s default.
testTimeout: process.env['RUNNER_NAME']?.startsWith('ecs-qwen-')
? 60_000
: undefined,
hookTimeout: process.env['RUNNER_NAME']?.startsWith('ecs-qwen-')
? 60_000
: undefined,
exclude: [...configDefaults.exclude, 'e2e/**'],
reporters: ['default', ['junit', { suiteName: '@qwen-code/web-shell' }]],
outputFile: {
junit: '../junit.xml',
},
// RPC-timeout exemption; see scripts/tests/unit-vitest-configs.test.ts.
dangerouslyIgnoreUnhandledErrors: process.platform !== 'linux',
coverage: {
// Same switch as cli/core: only the post-merge main run collects it.
enabled: process.env['QWEN_CI_COVERAGE'] === '1',
provider: 'v8',
reportsDirectory: '../coverage',
reporter: ['text-summary', 'json-summary', 'html'],
include: ['**/*.{ts,tsx}'],
exclude: [
'**/*.test.{ts,tsx}',
'**/test/**',
'**/e2e/**',
'**/*.d.ts',
'vite-env.d.ts',
],
},
},
});