feat(frontend): 完善主题导入与手帐工作区并修复 Mermaid 预览

This commit is contained in:
2026-09-05 18:42:14 +08:00
parent 311ea4a8ac
commit d5b1050a86
14 changed files with 655 additions and 96 deletions
@@ -0,0 +1,18 @@
// @vitest-environment happy-dom
import { expect, it } from 'vitest'
import { installCodeBlockLabels } from './codeBlockLabels'
it('keeps footer labels in sync when the language changes and stops after disposal', async () => {
const root = document.createElement('div')
root.innerHTML = '<div class="milkdown-code-block"><button class="language-button">Python</button></div>'
const dispose = installCodeBlockLabels(root)
const block = root.firstElementChild as HTMLElement
expect(block.dataset.languageLabel).toBe('Python')
block.querySelector('button')!.textContent = 'TypeScript'
await new Promise(resolve => setTimeout(resolve, 0))
expect(block.dataset.languageLabel).toBe('TypeScript')
dispose()
block.querySelector('button')!.textContent = 'Rust'
await new Promise(resolve => setTimeout(resolve, 0))
expect(block.dataset.languageLabel).toBe('TypeScript')
})