- 适配器 i18n 接入(eslint/pmd/sql-lint/stylelint) - Provider 动态注册机制(registry.ts + providers.json + factory 重构) - SetupView 全面重构(setupView.ts 新增 600+ 行) - i18n 消息扩展(messages.ts +210 行) - 规则导入流程优化(import-service / prompt-builder) - 新增 PMD jars 依赖及测试用例
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import * as assert from 'assert';
|
|
import * as vscode from 'vscode';
|
|
import * as path from 'path';
|
|
import { ESLintAdapter } from '../adapters/eslint';
|
|
import { mergeResults } from '../merger/merger';
|
|
|
|
suite('Pipeline Tests', () => {
|
|
test('Full pipeline: linter check + merge', async () => {
|
|
const adapter = new ESLintAdapter();
|
|
if (!adapter.isAvailable()) { return; }
|
|
|
|
const doc = await vscode.workspace.openTextDocument({
|
|
content: 'var x = 1;\nvar y = 2;\n',
|
|
language: 'javascript',
|
|
});
|
|
|
|
const staticResult = await adapter.check(doc, __dirname);
|
|
assert.ok(staticResult.status === 'ok');
|
|
|
|
const report = mergeResults({
|
|
staticDiagnostics: staticResult.diagnostics,
|
|
customRuleResults: [],
|
|
translatedDiagnostics: [],
|
|
aiFindings: [],
|
|
errors: [],
|
|
degraded: false,
|
|
startTime: Date.now(),
|
|
filePath: 'virtual-doc',
|
|
language: 'javascript',
|
|
adapterIds: ['eslint'],
|
|
});
|
|
|
|
assert.ok(typeof report.duration === 'number');
|
|
assert.ok(typeof report.linterCount === 'number');
|
|
assert.strictEqual(report.language, 'javascript');
|
|
});
|
|
});
|