✨ feat(vscode): 注释卡片可按规范重写注释

This commit is contained in:
cruldra committed 2026-10-03 03:22:20 +08:00
1 parent 724c81188c
commit 299acb979f
11 files changed
+717 -5

No files matched your search

@@ -2,8 +2,15 @@ import { renderToStaticMarkup } from 'react-dom/server'
import { describe, expect, it } from 'vitest'
import { BlockTools } from './BlockTools'
function render(editing: boolean, ask?: { asking: boolean }): string {
return renderToStaticMarkup(<BlockTools editing={editing} onToggleEdit={() => {}} {...(ask && { asking: ask.asking, onToggleAsk: () => {} })} />)
function render(editing: boolean, ask?: { asking: boolean }, rewrite?: { rewriting: boolean }): string {
return renderToStaticMarkup(
<BlockTools
editing={editing}
onToggleEdit={() => {}}
{...(ask && { asking: ask.asking, onToggleAsk: () => {} })}
{...(rewrite && { rewriting: rewrite.rewriting, onRewrite: () => {} })}
/>,
)
}
/** 标签之间的字:图标(svg)没有字,按钮上有字就会出现在这里 */
@@ -31,4 +38,19 @@ describe('块右上角的图标按钮', () => {
expect(buttons[0].includes('data-active')).toBe(asking)
expect(buttons[1]).toContain('data-tooltip="编辑"')
})
it('「按注释规范重写」排在「问 AI」左边;正在重写时禁用并转圈,不用原生 title', () => {
const html = render(false, { asking: false }, { rewriting: false })
expect(visibleText(html)).toBe('')
expect(html).not.toContain(' title=')
const buttons = [...html.matchAll(/<button[^>]*>/g)].map(match => match[0])
expect(buttons).toHaveLength(3)
expect(buttons[0]).toContain('data-tooltip="按注释规范重写" aria-label="按注释规范重写"')
expect(buttons[0]).not.toContain('disabled')
expect(buttons[1]).toContain('data-tooltip="问 AI"')
expect(buttons[2]).toContain('data-tooltip="编辑"')
const busy = render(false, { asking: false }, { rewriting: true })
expect(busy).toContain('disabled=""')
expect(busy).toContain('cr-qa-spin')
})
})