修复 queue dry-run 与默认摘要输出
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import assert from "node:assert/strict";
|
||||
import type { JsonRecord } from "../../common/types.js";
|
||||
import { assertNoSecretLeak, type SelfTestContext, type SelfTestResult } from "../harness.js";
|
||||
import { renderRunEventSummaryTsv, summarizeQueueDispatchResult, summarizeRunEventPage, summarizeSessionEventPage } from "../../../scripts/src/cli.js";
|
||||
import { renderRunEventSummaryTsv, summarizeQueueCommanderSnapshot, summarizeQueueDispatchResult, summarizeQueueTaskListResult, summarizeQueueTaskShowResult, summarizeRunEventPage, summarizeSessionEventPage } from "../../../scripts/src/cli.js";
|
||||
|
||||
export default function selfTest(_context: SelfTestContext): SelfTestResult {
|
||||
const summary = summarizeRunEventPage({ items: [
|
||||
@@ -74,5 +74,51 @@ export default function selfTest(_context: SelfTestContext): SelfTestResult {
|
||||
assert.equal(((queueSummary.expandedOutput as JsonRecord).fullFlag), "--full");
|
||||
assertNoSecretLeak(queueSummary);
|
||||
|
||||
return { name: "15-cli-events-summary", tests: ["runs-events-summary-tail", "runs-events-summary-tsv-redaction", "sessions-events-low-noise-summary", "queue-dispatch-low-noise-summary"] };
|
||||
const noisyTask = {
|
||||
id: "qt_noisy",
|
||||
state: "completed",
|
||||
queue: "dev",
|
||||
lane: "case",
|
||||
title: "noisy queue task",
|
||||
priority: 50,
|
||||
backendProfile: "codex",
|
||||
providerId: "G14",
|
||||
version: 9,
|
||||
payload: { prompt: hugeRunnerTrace },
|
||||
latestAttempt: { attemptId: "attempt_noisy", state: "completed", runId: "run_noisy", commandId: "cmd_noisy", runnerJobId: "rj_noisy", sessionId: "sess_noisy", sessionPath: "/api/v1/sessions/sess_noisy" },
|
||||
sessionRef: { sessionId: "sess_noisy" },
|
||||
unread: true,
|
||||
active: false,
|
||||
attentionState: "unread",
|
||||
};
|
||||
|
||||
const commanderSummary = summarizeQueueCommanderSnapshot({
|
||||
queue: null,
|
||||
readerId: "cli",
|
||||
stats: { queue: null, total: 2, maxVersion: 9, byState: { completed: 1 }, byLane: { case: 1 }, byBackendProfile: { codex: 1 }, generatedAt: "2026-06-10T00:00:00.000Z" },
|
||||
items: [noisyTask, { ...noisyTask, id: "qt_hidden" }],
|
||||
generatedAt: "2026-06-10T00:00:00.000Z",
|
||||
}, { limit: 1 });
|
||||
assert.equal(commanderSummary.action, "queue-commander-summary");
|
||||
assert.equal(commanderSummary.sourceCount, 2);
|
||||
assert.equal(commanderSummary.displayedCount, 1);
|
||||
assert.equal(JSON.stringify(commanderSummary).includes("runner trace line"), false);
|
||||
assert.equal((((commanderSummary.items as JsonRecord[])[0]?.latestAttempt as JsonRecord).sessionId), "sess_noisy");
|
||||
assert.equal(String(((commanderSummary.drillDownCommands as JsonRecord).full)).includes("--full"), true);
|
||||
assertNoSecretLeak(commanderSummary);
|
||||
|
||||
const listSummary = summarizeQueueTaskListResult({ items: [noisyTask], nextCursor: "9" }, { limit: 20 });
|
||||
assert.equal(listSummary.action, "queue-list-summary");
|
||||
assert.equal(JSON.stringify(listSummary).includes("runner trace line"), false);
|
||||
assert.equal(String(((listSummary.drillDownCommands as JsonRecord).next)).includes("--cursor 9"), true);
|
||||
assertNoSecretLeak(listSummary);
|
||||
|
||||
const showSummary = summarizeQueueTaskShowResult(noisyTask, "qt_noisy");
|
||||
assert.equal(showSummary.action, "queue-show-summary");
|
||||
assert.equal(JSON.stringify(showSummary).includes("runner trace line"), false);
|
||||
assert.ok(Number(showSummary.payloadBytes) > 10_000);
|
||||
assert.equal(String(((showSummary.pollCommands as JsonRecord).trace)).includes("sess_noisy"), true);
|
||||
assertNoSecretLeak(showSummary);
|
||||
|
||||
return { name: "15-cli-events-summary", tests: ["runs-events-summary-tail", "runs-events-summary-tsv-redaction", "sessions-events-low-noise-summary", "queue-dispatch-low-noise-summary", "queue-list-show-commander-low-noise-summary"] };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user