viberadar 0.3.16 → 0.3.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +153 -7
- package/dist/server/index.js.map +1 -1
- package/dist/ui/dashboard.html +101 -14
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAM7B,OAAO,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAEhF,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAM7B,OAAO,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAEhF,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AA4WD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAyf1G"}
|
package/dist/server/index.js
CHANGED
|
@@ -135,17 +135,37 @@ function runTestFiles(files, projectRoot) {
|
|
|
135
135
|
// vitest --reporter=json wraps output; find the JSON object
|
|
136
136
|
const match = stdout.match(/\{[\s\S]*"testResults"[\s\S]*\}/);
|
|
137
137
|
const json = JSON.parse(match ? match[0] : stdout);
|
|
138
|
+
// Extract per-file failure details
|
|
139
|
+
const fileDetails = {};
|
|
140
|
+
for (const tr of (json.testResults ?? [])) {
|
|
141
|
+
const fp = tr.testFilePath ?? '';
|
|
142
|
+
const errors = [];
|
|
143
|
+
for (const ar of (tr.assertionResults ?? [])) {
|
|
144
|
+
if (ar.status === 'failed') {
|
|
145
|
+
errors.push({
|
|
146
|
+
testName: ar.fullName ?? ar.title ?? 'unknown',
|
|
147
|
+
message: (ar.failureMessages?.[0] ?? '').split('\n')[0].slice(0, 300),
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
fileDetails[fp] = {
|
|
152
|
+
passed: (tr.assertionResults ?? []).filter((a) => a.status === 'passed').length,
|
|
153
|
+
failed: errors.length,
|
|
154
|
+
errors,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
138
157
|
resolve({
|
|
139
158
|
passed: json.numPassedTests ?? 0,
|
|
140
159
|
failed: json.numFailedTests ?? 0,
|
|
141
160
|
files,
|
|
161
|
+
fileDetails,
|
|
142
162
|
});
|
|
143
163
|
}
|
|
144
164
|
catch {
|
|
145
|
-
resolve({ passed: 0, failed: 0, files });
|
|
165
|
+
resolve({ passed: 0, failed: 0, files, fileDetails: {} });
|
|
146
166
|
}
|
|
147
167
|
});
|
|
148
|
-
proc.on('error', () => resolve({ passed: 0, failed: 0, files }));
|
|
168
|
+
proc.on('error', () => resolve({ passed: 0, failed: 0, files, fileDetails: {} }));
|
|
149
169
|
});
|
|
150
170
|
}
|
|
151
171
|
// ─── Prompt builders ──────────────────────────────────────────────────────────
|
|
@@ -235,6 +255,22 @@ function buildWriteTestsForFilePrompt(filePath, feat, modules, testRunner) {
|
|
|
235
255
|
`- Не изменяй существующие тесты`,
|
|
236
256
|
].filter(Boolean).join('\n');
|
|
237
257
|
}
|
|
258
|
+
function buildFixTestsPrompt(filePath, errors) {
|
|
259
|
+
const normalPath = filePath.replace(/\\/g, '/');
|
|
260
|
+
return [
|
|
261
|
+
`Исправь падающие тесты в файле \`${normalPath}\`.`,
|
|
262
|
+
``,
|
|
263
|
+
`Упавшие тесты (${errors.length}):`,
|
|
264
|
+
...errors.map(e => `• "${e.testName}"\n ${e.message}`),
|
|
265
|
+
``,
|
|
266
|
+
`Требования:`,
|
|
267
|
+
`- Исправь только падающие тесты, не трогай проходящие`,
|
|
268
|
+
`- Не удаляй тесты — исправь логику или моки`,
|
|
269
|
+
`- Если тест проверяет несуществующее поведение — адаптируй под реальное поведение кода`,
|
|
270
|
+
`- Если ошибка в исходном коде, а не в тесте — исправь код`,
|
|
271
|
+
`- После исправления запусти тест, чтобы убедиться что он проходит`,
|
|
272
|
+
].join('\n');
|
|
273
|
+
}
|
|
238
274
|
function buildMapUnmappedPrompt(modules, features) {
|
|
239
275
|
const unmapped = modules
|
|
240
276
|
.filter(m => m.type !== 'test' && !m.isInfra && (!m.featureKeys || m.featureKeys.length === 0))
|
|
@@ -321,6 +357,9 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
321
357
|
let coverageRunning = false;
|
|
322
358
|
let coverageError = false;
|
|
323
359
|
let agentRunning = false;
|
|
360
|
+
let testsRunning = false;
|
|
361
|
+
// Keyed by absolute file path → per-file failure details from last test run
|
|
362
|
+
const lastTestResults = new Map();
|
|
324
363
|
// ── SSE clients ────────────────────────────────────────────────────────────
|
|
325
364
|
const sseClients = new Set();
|
|
326
365
|
function broadcast(event, payload = {}) {
|
|
@@ -450,6 +489,28 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
450
489
|
const fileName = filePath.replace(/\\/g, '/').split('/').pop() || filePath;
|
|
451
490
|
title = `${agentLabel} — тест для "${fileName}"`;
|
|
452
491
|
}
|
|
492
|
+
else if (task === 'fix-tests') {
|
|
493
|
+
if (!filePath) {
|
|
494
|
+
broadcast('agent-error', { message: 'Не указан файл для исправления' });
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
// Look up stored errors for this file (match by absolute or relative path)
|
|
498
|
+
let storedErrors;
|
|
499
|
+
for (const [fp, detail] of lastTestResults) {
|
|
500
|
+
const rel = path.relative(projectRoot, fp).replace(/\\/g, '/');
|
|
501
|
+
if (rel === filePath.replace(/\\/g, '/') || fp === filePath) {
|
|
502
|
+
storedErrors = detail.errors;
|
|
503
|
+
break;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
if (!storedErrors || storedErrors.length === 0) {
|
|
507
|
+
broadcast('agent-error', { message: `Нет сохранённых ошибок для ${filePath}. Сначала запусти тесты.` });
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
prompt = buildFixTestsPrompt(filePath, storedErrors);
|
|
511
|
+
const fileName = filePath.replace(/\\/g, '/').split('/').pop() || filePath;
|
|
512
|
+
title = `${agentLabel} — исправить тесты в "${fileName}"`;
|
|
513
|
+
}
|
|
453
514
|
else {
|
|
454
515
|
prompt = buildMapUnmappedPrompt(currentData.modules, currentData.features || []);
|
|
455
516
|
title = `${agentLabel} — разобрать unmapped`;
|
|
@@ -531,15 +592,34 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
531
592
|
proc.on('close', async (code) => {
|
|
532
593
|
agentRunning = false;
|
|
533
594
|
if (code === 0) {
|
|
534
|
-
// Auto-run created test files and show results
|
|
535
|
-
|
|
595
|
+
// Auto-run created/fixed test files and show results
|
|
596
|
+
const testFilesToRun = task === 'fix-tests' && filePath ? [filePath] : createdTestFiles;
|
|
597
|
+
if ((task === 'write-tests' || task === 'write-tests-file' || task === 'fix-tests') && testFilesToRun.length > 0) {
|
|
536
598
|
broadcast('agent-output', { line: '─────────────────────────────' });
|
|
537
|
-
broadcast('agent-output', { line: `🧪 Запускаю тесты (${
|
|
538
|
-
const result = await runTestFiles(
|
|
599
|
+
broadcast('agent-output', { line: `🧪 Запускаю тесты (${testFilesToRun.length} файлов)...` });
|
|
600
|
+
const result = await runTestFiles(testFilesToRun, projectRoot);
|
|
601
|
+
// Store per-file results for "fix-tests" feature
|
|
602
|
+
lastTestResults.clear();
|
|
603
|
+
for (const [fp, detail] of Object.entries(result.fileDetails)) {
|
|
604
|
+
if (detail.failed > 0)
|
|
605
|
+
lastTestResults.set(fp, { failed: detail.failed, errors: detail.errors });
|
|
606
|
+
}
|
|
539
607
|
const summary = result.failed === 0
|
|
540
608
|
? `✅ Все тесты прошли: ${result.passed} passed`
|
|
541
609
|
: `⚠️ ${result.passed} passed, ${result.failed} failed`;
|
|
542
610
|
broadcast('agent-output', { line: summary });
|
|
611
|
+
if (result.failed > 0) {
|
|
612
|
+
for (const [fp, detail] of Object.entries(result.fileDetails)) {
|
|
613
|
+
if (detail.failed > 0) {
|
|
614
|
+
const rel = path.relative(projectRoot, fp).replace(/\\/g, '/');
|
|
615
|
+
broadcast('agent-output', { line: ` ❌ ${rel} — ${detail.failed} упало` });
|
|
616
|
+
for (const e of detail.errors.slice(0, 3)) {
|
|
617
|
+
broadcast('agent-output', { line: ` • ${e.testName}`, isDim: true });
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
broadcast('agent-output', { line: ' → Нажми 🔧 исправить в дашборде чтобы агент починил' });
|
|
622
|
+
}
|
|
543
623
|
broadcast('agent-summary', result);
|
|
544
624
|
}
|
|
545
625
|
process.stdout.write(' ✅ Agent done, rescanning...\n');
|
|
@@ -586,8 +666,14 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
586
666
|
return;
|
|
587
667
|
}
|
|
588
668
|
if (url === '/api/data') {
|
|
669
|
+
// Include per-file test errors from last test run (keyed by relative path)
|
|
670
|
+
const testErrors = {};
|
|
671
|
+
for (const [fp, detail] of lastTestResults) {
|
|
672
|
+
const rel = path.relative(projectRoot, fp).replace(/\\/g, '/');
|
|
673
|
+
testErrors[rel] = detail;
|
|
674
|
+
}
|
|
589
675
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
590
|
-
res.end(JSON.stringify(currentData));
|
|
676
|
+
res.end(JSON.stringify({ ...currentData, testErrors }));
|
|
591
677
|
return;
|
|
592
678
|
}
|
|
593
679
|
if (url === '/api/status') {
|
|
@@ -601,6 +687,66 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
601
687
|
res.end(JSON.stringify({ ok: true }));
|
|
602
688
|
return;
|
|
603
689
|
}
|
|
690
|
+
if (url === '/api/run-tests' && req.method === 'POST') {
|
|
691
|
+
let body = '';
|
|
692
|
+
req.on('data', d => body += d);
|
|
693
|
+
req.on('end', async () => {
|
|
694
|
+
if (testsRunning) {
|
|
695
|
+
res.writeHead(409);
|
|
696
|
+
res.end(JSON.stringify({ error: 'Tests already running' }));
|
|
697
|
+
return;
|
|
698
|
+
}
|
|
699
|
+
try {
|
|
700
|
+
const { featureKey, testType } = JSON.parse(body);
|
|
701
|
+
const testFiles = (currentData.modules || [])
|
|
702
|
+
.filter(m => m.type === 'test' && m.testType === testType && m.featureKeys?.includes(featureKey))
|
|
703
|
+
.map(m => m.path);
|
|
704
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
705
|
+
res.end(JSON.stringify({ ok: true, count: testFiles.length }));
|
|
706
|
+
if (testFiles.length === 0) {
|
|
707
|
+
broadcast('tests-started', { featureKey, testType, count: 0 });
|
|
708
|
+
broadcast('agent-output', { line: `Нет ${testType} тест-файлов для этой фичи` });
|
|
709
|
+
broadcast('tests-done', { passed: 0, failed: 0 });
|
|
710
|
+
return;
|
|
711
|
+
}
|
|
712
|
+
testsRunning = true;
|
|
713
|
+
broadcast('tests-started', { featureKey, testType, count: testFiles.length });
|
|
714
|
+
broadcast('agent-output', { line: `🧪 Запускаю ${testType} тесты (${testFiles.length} файлов)…` });
|
|
715
|
+
process.stdout.write(` 🧪 run-tests: ${testType} ×${testFiles.length}\n`);
|
|
716
|
+
const result = await runTestFiles(testFiles, projectRoot);
|
|
717
|
+
testsRunning = false;
|
|
718
|
+
// Store per-file errors
|
|
719
|
+
lastTestResults.clear();
|
|
720
|
+
for (const [fp, detail] of Object.entries(result.fileDetails)) {
|
|
721
|
+
if (detail.failed > 0)
|
|
722
|
+
lastTestResults.set(fp, { failed: detail.failed, errors: detail.errors });
|
|
723
|
+
}
|
|
724
|
+
const summary = result.failed === 0
|
|
725
|
+
? `✅ Все тесты прошли: ${result.passed} passed`
|
|
726
|
+
: `⚠️ ${result.passed} passed, ${result.failed} failed`;
|
|
727
|
+
broadcast('agent-output', { line: summary });
|
|
728
|
+
if (result.failed > 0) {
|
|
729
|
+
for (const [fp, detail] of Object.entries(result.fileDetails)) {
|
|
730
|
+
if (detail.failed > 0) {
|
|
731
|
+
const rel = path.relative(projectRoot, fp).replace(/\\/g, '/');
|
|
732
|
+
broadcast('agent-output', { line: ` ❌ ${rel} — ${detail.failed} упало` });
|
|
733
|
+
for (const e of detail.errors.slice(0, 3)) {
|
|
734
|
+
broadcast('agent-output', { line: ` • ${e.testName}`, isDim: true });
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
broadcast('agent-output', { line: ' → Нажми 🔧 исправить рядом с файлом чтобы агент починил' });
|
|
739
|
+
}
|
|
740
|
+
broadcast('tests-done', { passed: result.passed, failed: result.failed });
|
|
741
|
+
}
|
|
742
|
+
catch (err) {
|
|
743
|
+
testsRunning = false;
|
|
744
|
+
res.writeHead(400);
|
|
745
|
+
res.end(JSON.stringify({ error: err.message }));
|
|
746
|
+
}
|
|
747
|
+
});
|
|
748
|
+
return;
|
|
749
|
+
}
|
|
604
750
|
if (url === '/api/run-agent' && req.method === 'POST') {
|
|
605
751
|
process.stdout.write(' 📥 /api/run-agent received\n');
|
|
606
752
|
let body = '';
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/dashboard.html
CHANGED
|
@@ -455,6 +455,16 @@
|
|
|
455
455
|
background: var(--bg-hover);
|
|
456
456
|
border-width: 2px;
|
|
457
457
|
}
|
|
458
|
+
.tt-run-btn {
|
|
459
|
+
display: block; width: 100%; margin-top: 8px;
|
|
460
|
+
padding: 3px 0;
|
|
461
|
+
background: transparent; border: 1px solid var(--border);
|
|
462
|
+
border-radius: 4px; color: var(--muted); font-size: 10px;
|
|
463
|
+
cursor: pointer; text-align: center;
|
|
464
|
+
transition: background 0.1s, color 0.1s, border-color 0.1s;
|
|
465
|
+
}
|
|
466
|
+
.tt-run-btn:hover { background: var(--bg-hover); color: var(--text); border-color: var(--dim); }
|
|
467
|
+
.tt-run-btn:disabled { opacity: 0.4; cursor: not-allowed; }
|
|
458
468
|
.file-rows { display: flex; flex-direction: column; gap: 2px; }
|
|
459
469
|
.file-row {
|
|
460
470
|
display: flex;
|
|
@@ -489,6 +499,22 @@
|
|
|
489
499
|
.file-row-agent-btn:hover { background: var(--accent); color: #000 !important; border-color: var(--accent); }
|
|
490
500
|
.file-row-agent-btn.stale { border-color: var(--yellow); color: var(--yellow); }
|
|
491
501
|
.file-row-agent-btn.stale:hover { background: var(--yellow) !important; color: #000 !important; }
|
|
502
|
+
.file-row-fix-btn { border-color: var(--red) !important; color: var(--red) !important; }
|
|
503
|
+
.file-row-fix-btn:hover { background: var(--red) !important; color: #fff !important; border-color: var(--red) !important; }
|
|
504
|
+
.file-row-err-badge {
|
|
505
|
+
display: inline-flex; align-items: center;
|
|
506
|
+
font-size: 11px; padding: 1px 6px; border-radius: 10px;
|
|
507
|
+
background: #3a1a1a; color: var(--red);
|
|
508
|
+
cursor: pointer; white-space: nowrap; flex-shrink: 0;
|
|
509
|
+
}
|
|
510
|
+
.file-row.has-errors { border-left: 2px solid var(--red); padding-left: 8px; }
|
|
511
|
+
.file-row-errors {
|
|
512
|
+
padding: 4px 10px 6px 32px;
|
|
513
|
+
display: flex; flex-direction: column; gap: 3px;
|
|
514
|
+
}
|
|
515
|
+
.err-item { display: flex; flex-direction: column; gap: 1px; }
|
|
516
|
+
.err-name { font-size: 11px; color: var(--muted); }
|
|
517
|
+
.err-msg { font-size: 10px; color: var(--red); font-family: monospace; opacity: 0.85; }
|
|
492
518
|
|
|
493
519
|
/* ── Agent setup banner ──────────────────────────────────────────────────── */
|
|
494
520
|
.agent-setup-banner {
|
|
@@ -712,6 +738,19 @@ async function runAgentTask(task, featureKey, filePath) {
|
|
|
712
738
|
});
|
|
713
739
|
}
|
|
714
740
|
|
|
741
|
+
async function runTests(featureKey, testType) {
|
|
742
|
+
document.getElementById('agentTerminal').innerHTML = '';
|
|
743
|
+
document.getElementById('agentPanelTitle').textContent = `🧪 ${testType} тесты`;
|
|
744
|
+
document.getElementById('agentPanelStatus').textContent = 'запускаю…';
|
|
745
|
+
document.getElementById('agentPanel').classList.add('open');
|
|
746
|
+
document.getElementById('termBtn').classList.add('term-active');
|
|
747
|
+
await fetch('/api/run-tests', {
|
|
748
|
+
method: 'POST',
|
|
749
|
+
headers: { 'Content-Type': 'application/json' },
|
|
750
|
+
body: JSON.stringify({ featureKey, testType }),
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
|
|
715
754
|
function closeAgentPanel() {
|
|
716
755
|
document.getElementById('agentPanel').classList.remove('open');
|
|
717
756
|
document.getElementById('termBtn').classList.remove('term-active');
|
|
@@ -1028,9 +1067,12 @@ function renderFeatureCards(c) {
|
|
|
1028
1067
|
}
|
|
1029
1068
|
}
|
|
1030
1069
|
|
|
1031
|
-
function testTypeCard(type, label, icon, color, count, active) {
|
|
1070
|
+
function testTypeCard(type, label, icon, color, count, active, featureKey) {
|
|
1032
1071
|
const empty = count === 0 && type !== 'source';
|
|
1033
1072
|
const subLabel = empty ? 'нет тестов' : (type === 'source' ? 'код приложения' : pluralFiles(count));
|
|
1073
|
+
const runBtn = !empty && type !== 'source' && featureKey
|
|
1074
|
+
? `<button class="tt-run-btn" onclick="event.stopPropagation();runTests('${featureKey}','${type}')">▶ запустить</button>`
|
|
1075
|
+
: '';
|
|
1034
1076
|
return `
|
|
1035
1077
|
<div class="test-type-card${empty ? ' tt-empty' : ''}${active ? ' tt-active' : ''}" data-testtype="${type}"
|
|
1036
1078
|
style="${active ? 'border-color:' + color : ''}">
|
|
@@ -1038,6 +1080,7 @@ function testTypeCard(type, label, icon, color, count, active) {
|
|
|
1038
1080
|
<div class="tt-label">${icon} ${label}</div>
|
|
1039
1081
|
<div class="tt-count" style="color:${active || !empty ? color : 'var(--dim)'}">${count}</div>
|
|
1040
1082
|
<div class="tt-sub">${subLabel}</div>
|
|
1083
|
+
${runBtn}
|
|
1041
1084
|
</div>`;
|
|
1042
1085
|
}
|
|
1043
1086
|
|
|
@@ -1089,10 +1132,10 @@ function renderFeatureDetail(c) {
|
|
|
1089
1132
|
${feat.description ? `<div class="drill-desc">${feat.description}</div>` : ''}
|
|
1090
1133
|
|
|
1091
1134
|
<div class="test-type-grid">
|
|
1092
|
-
${testTypeCard('source', 'Файлы', '📁', feat.color, src.length, activeTab === 'source')}
|
|
1093
|
-
${testTypeCard('unit', 'Unit', '🧪', '#e3b341', unitCount, activeTab === 'unit')}
|
|
1094
|
-
${testTypeCard('integration', 'Integration', '🔗', '#58a6ff', integrationCount, activeTab === 'integration')}
|
|
1095
|
-
${testTypeCard('e2e', 'E2E', '🎭', '#d2a8ff', e2eCount, activeTab === 'e2e')}
|
|
1135
|
+
${testTypeCard('source', 'Файлы', '📁', feat.color, src.length, activeTab === 'source', drillFeatureKey)}
|
|
1136
|
+
${testTypeCard('unit', 'Unit', '🧪', '#e3b341', unitCount, activeTab === 'unit', drillFeatureKey)}
|
|
1137
|
+
${testTypeCard('integration', 'Integration', '🔗', '#58a6ff', integrationCount, activeTab === 'integration', drillFeatureKey)}
|
|
1138
|
+
${testTypeCard('e2e', 'E2E', '🎭', '#d2a8ff', e2eCount, activeTab === 'e2e', drillFeatureKey)}
|
|
1096
1139
|
</div>
|
|
1097
1140
|
|
|
1098
1141
|
<div class="drill-section-label">${listLabel}</div>
|
|
@@ -1259,28 +1302,58 @@ function renderUnmappedDetail(c) {
|
|
|
1259
1302
|
}
|
|
1260
1303
|
|
|
1261
1304
|
function fileRow(m, isTest = false, featureKey = null) {
|
|
1262
|
-
const
|
|
1263
|
-
const
|
|
1264
|
-
const
|
|
1265
|
-
const
|
|
1305
|
+
const relPath = m.relativePath.replace(/\\/g, '/');
|
|
1306
|
+
const parts = relPath.split('/');
|
|
1307
|
+
const name = parts[parts.length - 1];
|
|
1308
|
+
const dir = parts.slice(0, -1).join('/');
|
|
1309
|
+
|
|
1310
|
+
// Test errors from last run
|
|
1311
|
+
const testErr = isTest && D.testErrors && D.testErrors[relPath];
|
|
1312
|
+
const icon = testErr ? '❌' : isTest ? '🧪' : (m.testStale ? '⚠️' : m.hasTests ? '✅' : '⬜');
|
|
1266
1313
|
const isActive = activePanelKey === m.id;
|
|
1267
|
-
|
|
1314
|
+
|
|
1315
|
+
// Write-test button for source files
|
|
1268
1316
|
const showAgentBtn = D.agent && !isTest && !m.isInfra && featureKey && (!m.hasTests || m.testStale);
|
|
1269
1317
|
const agentBtnLabel = m.testStale ? '↻ обновить тест' : '✍ написать тест';
|
|
1270
1318
|
const agentBtnTitle = m.testStale ? 'Файл изменился — обновить тесты' : 'Написать тест для этого файла';
|
|
1271
|
-
const agentTask = m.testStale ? 'write-tests-file' : 'write-tests-file';
|
|
1272
1319
|
const agentBtn = showAgentBtn
|
|
1273
1320
|
? `<button class="file-row-agent-btn${m.testStale ? ' stale' : ''}" title="${agentBtnTitle}"
|
|
1274
|
-
onclick="event.stopPropagation();runAgentTask('
|
|
1321
|
+
onclick="event.stopPropagation();runAgentTask('write-tests-file','${featureKey}','${relPath}')">
|
|
1275
1322
|
${agentBtnLabel}</button>`
|
|
1276
1323
|
: '';
|
|
1324
|
+
|
|
1325
|
+
// Fix button for test files with errors
|
|
1326
|
+
const errBadge = testErr
|
|
1327
|
+
? `<span class="file-row-err-badge" title="${testErr.failed} тестов упало">❌ ${testErr.failed}</span>`
|
|
1328
|
+
: '';
|
|
1329
|
+
const fixBtn = testErr && D.agent
|
|
1330
|
+
? `<button class="file-row-agent-btn file-row-fix-btn" title="Попросить агента исправить упавшие тесты"
|
|
1331
|
+
onclick="event.stopPropagation();runAgentTask('fix-tests','${featureKey || ''}','${relPath}')">
|
|
1332
|
+
🔧 исправить</button>`
|
|
1333
|
+
: '';
|
|
1334
|
+
|
|
1335
|
+
// Inline error list (always shown when there are errors)
|
|
1336
|
+
const errHtml = testErr
|
|
1337
|
+
? `<div class="file-row-errors">
|
|
1338
|
+
${testErr.errors.slice(0, 5).map(e => `
|
|
1339
|
+
<div class="err-item">
|
|
1340
|
+
<span class="err-name">• ${e.testName}</span>
|
|
1341
|
+
<span class="err-msg">${e.message}</span>
|
|
1342
|
+
</div>`).join('')}
|
|
1343
|
+
${testErr.errors.length > 5 ? `<span class="err-name" style="color:var(--dim)">… ещё ${testErr.errors.length - 5}</span>` : ''}
|
|
1344
|
+
</div>`
|
|
1345
|
+
: '';
|
|
1346
|
+
|
|
1277
1347
|
return `
|
|
1278
|
-
<div class="file-row${isActive ? ' active' : ''}" data-id="${m.id}">
|
|
1348
|
+
<div class="file-row${isActive ? ' active' : ''}${testErr ? ' has-errors' : ''}" data-id="${m.id}">
|
|
1279
1349
|
<span class="file-row-icon">${icon}</span>
|
|
1280
1350
|
<span class="file-row-name">${name}</span>
|
|
1351
|
+
${errBadge}
|
|
1281
1352
|
${agentBtn}
|
|
1353
|
+
${fixBtn}
|
|
1282
1354
|
<span class="file-row-dir">${dir}</span>
|
|
1283
|
-
</div
|
|
1355
|
+
</div>
|
|
1356
|
+
${errHtml}`;
|
|
1284
1357
|
}
|
|
1285
1358
|
|
|
1286
1359
|
function renderModuleGrid(c) {
|
|
@@ -1676,6 +1749,20 @@ function connectSSE() {
|
|
|
1676
1749
|
appendTerminalLine('❌ ' + (message || 'Ошибка агента'), true);
|
|
1677
1750
|
});
|
|
1678
1751
|
|
|
1752
|
+
es.addEventListener('tests-started', (e) => {
|
|
1753
|
+
const { testType, count } = JSON.parse(e.data);
|
|
1754
|
+
document.getElementById('agentPanelTitle').textContent = `🧪 ${testType} тесты`;
|
|
1755
|
+
document.getElementById('agentPanelStatus').textContent = `запускаю ${count} файлов…`;
|
|
1756
|
+
});
|
|
1757
|
+
|
|
1758
|
+
es.addEventListener('tests-done', (e) => {
|
|
1759
|
+
const { passed, failed } = JSON.parse(e.data);
|
|
1760
|
+
document.getElementById('agentPanelStatus').textContent =
|
|
1761
|
+
failed === 0 ? `✅ ${passed} passed` : `⚠️ ${passed} passed, ${failed} failed`;
|
|
1762
|
+
// Refresh data to show updated error badges
|
|
1763
|
+
fetch('/api/data').then(r => r.json()).then(data => { D = data; renderContent(); });
|
|
1764
|
+
});
|
|
1765
|
+
|
|
1679
1766
|
es.onerror = () => {
|
|
1680
1767
|
setLiveDot('var(--dim)', 'Нет соединения — переподключаюсь…');
|
|
1681
1768
|
es.close();
|