99be1d76fe
- 新增 view/project-development/chat 模块:DirectProjectChatView 自己持有项目清单订阅、首屏锚点、历史分页、发送队列、附件、终止、草稿与本地消息 - DirectProjectChatView 入参收窄为项目路径、入口首轮需求(canonical content[])和两条权限门,Direct 状态不再穿过 App.tsx - 线程订阅与聊天 reducer 提成 useDirectThreadChatSubscription:subscribe/consume/notify 单飞循环、订阅欠账、SUBSCRIPTION_EXPIRED 重订与 DirectThreadChatState - chat/components 按「一个组件一个目录、逻辑与表现同目录」重组(ChatHeader、Composer、Conversation、SettingsDialog、ToolCallGroup) - DirectProjectChatView 拆成聊天头、会话区、回合、输入盒四个组件 - App.tsx 删除 Direct 专属 state/ref/effect/handler 与 directCodex 分支,首轮需求按 canonical content 交给聊天 - 工作台级动作(运行本地预览等)经 DirectProjectChatHandle.announce 交给聊天自己的本地消息流 - Direct 首轮认领记录提成 app/initialSupervisorMessageClaims,供各入口共用 - Rust 侧 Direct 契约 ts-rs 导出目录改到 chat/generated - 补齐 direct_codex_user_item/wire.rs 既有的 rustfmt 空格漂移 - 同步 ADR、实施计划、decision-log、pitfalls 与 Direct 技术文档
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import { toDirectCodexTurnAttachments } from '../src/view/project-development/chat/conversation/directCodexTurnAttachments';
|
|
|
|
describe('toDirectCodexTurnAttachments', () => {
|
|
it('maps imported files and omits error plus empty localPath', () => {
|
|
expect(
|
|
toDirectCodexTurnAttachments([
|
|
{
|
|
fileName: '角色参考.png',
|
|
mediaType: 'image/png',
|
|
localPath: 'assets/uploads/upload-1-角色参考.png',
|
|
status: 'imported',
|
|
size: 12,
|
|
},
|
|
{
|
|
fileName: 'lost.bin',
|
|
mediaType: 'application/octet-stream',
|
|
status: 'failed',
|
|
error: '磁盘不可写',
|
|
size: 2,
|
|
},
|
|
]),
|
|
).toEqual([
|
|
{
|
|
name: '角色参考.png',
|
|
mediaType: 'image/png',
|
|
size: 12,
|
|
localPath: 'assets/uploads/upload-1-角色参考.png',
|
|
status: 'imported',
|
|
},
|
|
{
|
|
name: 'lost.bin',
|
|
mediaType: 'application/octet-stream',
|
|
size: 2,
|
|
status: 'failed',
|
|
},
|
|
]);
|
|
});
|
|
|
|
it('returns an empty list when there is nothing to map', () => {
|
|
expect(toDirectCodexTurnAttachments(undefined)).toEqual([]);
|
|
expect(toDirectCodexTurnAttachments([])).toEqual([]);
|
|
});
|
|
});
|