Files
tutti/packages/agent/gui/shared/agentConversation/components/useAgentTranscriptEditRetryProjection.spec.ts
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

40 lines
1.1 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { AgentMessageRowVM } from "../contracts/agentMessageRowVM";
import { resolveAgentTranscriptEditRetryRowId } from "./useAgentTranscriptEditRetryProjection";
describe("resolveAgentTranscriptEditRetryRowId", () => {
it("selects only the exact eligible user turn with a lossless text block", () => {
const older = userRow("row-old", "turn-old", "old");
const latest = userRow("row-latest", "turn-latest", "latest");
expect(
resolveAgentTranscriptEditRetryRowId([older, latest], "turn-latest")
).toBe("row-latest");
expect(
resolveAgentTranscriptEditRetryRowId(
[older, { ...latest, rawFirstTextBlock: null }],
"turn-latest"
)
).toBeNull();
expect(
resolveAgentTranscriptEditRetryRowId([older, latest], "turn-missing")
).toBeNull();
});
});
function userRow(
id: string,
turnId: string,
rawFirstTextBlock: string
): AgentMessageRowVM {
return {
kind: "message",
id,
turnId,
speaker: "user",
rawFirstTextBlock,
messages: [],
thinking: [],
occurredAtUnixMs: 1
};
}