Files
MyGoNavi/frontend/src/components/MonacoEditor.worker.test.ts
Syngnat 4bee3cefa6 ️ perf(query-editor): 优化输入与选区交互流畅度
- 为 Monaco 编辑器及语言服务接入独立 Worker
- 限制大规模对象元数据与列装饰扫描范围
- 仅在按下导航修饰键时更新悬停状态
- 避免同一数据库上下文重复重建装饰并补充回归测试
2026-07-13 12:54:02 +08:00

29 lines
1.3 KiB
TypeScript

import { describe, expect, it, vi } from 'vitest';
import { installMonacoWorkerEnvironment } from './MonacoEditor';
describe('MonacoEditor worker environment', () => {
it('routes Monaco languages to bundled workers', () => {
const createWorker = (name: string) => vi.fn(() => ({ name } as unknown as Worker));
const workers = {
editor: createWorker('editor'),
json: createWorker('json'),
css: createWorker('css'),
html: createWorker('html'),
typescript: createWorker('typescript'),
};
const scope: Record<string, any> = {};
installMonacoWorkerEnvironment(scope, workers);
expect(scope.MonacoEnvironment.getWorker('', 'json')).toEqual({ name: 'json' });
expect(scope.MonacoEnvironment.getWorker('', 'css')).toEqual({ name: 'css' });
expect(scope.MonacoEnvironment.getWorker('', 'scss')).toEqual({ name: 'css' });
expect(scope.MonacoEnvironment.getWorker('', 'html')).toEqual({ name: 'html' });
expect(scope.MonacoEnvironment.getWorker('', 'handlebars')).toEqual({ name: 'html' });
expect(scope.MonacoEnvironment.getWorker('', 'typescript')).toEqual({ name: 'typescript' });
expect(scope.MonacoEnvironment.getWorker('', 'javascript')).toEqual({ name: 'typescript' });
expect(scope.MonacoEnvironment.getWorker('', 'sql')).toEqual({ name: 'editor' });
});
});