feat(editor): add markdown presets, heading folding and external file refresh
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
// @vitest-environment happy-dom
|
||||
import { beforeEach, expect, it } from 'vitest'
|
||||
import { createPinia, setActivePinia } from 'pinia'
|
||||
import { nextTick } from 'vue'
|
||||
import { normalizeHeadingAppearance, useHeadingAppearanceStore } from './headingAppearance'
|
||||
beforeEach(() => { localStorage.clear(); setActivePinia(createPinia()) })
|
||||
it('persists heading preferences and restores theme defaults without residual overrides', async () => {
|
||||
const store = useHeadingAppearanceStore()
|
||||
expect(store.cssVariables).toEqual({})
|
||||
store.preferences.custom = true
|
||||
store.preferences.levels[1]!.size = 35
|
||||
store.preferences.levels[1]!.weight = 400
|
||||
await nextTick()
|
||||
setActivePinia(createPinia())
|
||||
const restored = useHeadingAppearanceStore()
|
||||
expect(restored.cssVariables['--heading-2-size']).toBe('35px')
|
||||
expect(restored.cssVariables['--heading-2-weight']).toBe('400')
|
||||
restored.reset()
|
||||
expect(restored.cssVariables).toEqual({})
|
||||
})
|
||||
it('rejects invalid storage and limits values before applying CSS', () => {
|
||||
localStorage.setItem('editor-heading-appearance', 'invalid')
|
||||
expect(useHeadingAppearanceStore().preferences.custom).toBe(false)
|
||||
const result = normalizeHeadingAppearance({ custom: true, family: 'url(unsafe)', levels: [{ size: 9999, weight: 2 }, { size: NaN }] })
|
||||
expect(result.family).toBe('inherit')
|
||||
expect(result.levels[0]).toEqual({ size: 72, weight: 700 })
|
||||
expect(result.levels[1]!.size).toBe(28)
|
||||
})
|
||||
Reference in New Issue
Block a user