import { renderToStaticMarkup } from 'react-dom/server' import { describe, expect, it } from 'vitest' import { BlockTools } from './BlockTools' function render(editing: boolean, ask?: { asking: boolean }, rewrite?: { rewriting: boolean }): string { return renderToStaticMarkup( {}} {...(ask && { asking: ask.asking, onToggleAsk: () => {} })} {...(rewrite && { rewriting: rewrite.rewriting, onRewrite: () => {} })} />, ) } /** 标签之间的字:图标(svg)没有字,按钮上有字就会出现在这里 */ const visibleText = (html: string): string => html.replace(/<[^>]*>/g, '').trim() describe('块右上角的图标按钮', () => { it.each([[false, '编辑'], [true, '预览']] as const)('编辑中 = %s:只有图标不带字,名字在悬停提示和 aria-label 里', (editing, label) => { const html = render(editing) expect(html).toMatch(/^]* role="group" aria-label="块操作"/) expect(visibleText(html)).toBe('') expect(html.match(/