@tldraw/editor
Version:
tldraw infinite canvas SDK (editor).
42 lines (36 loc) • 1.26 kB
text/typescript
import { describe, expect, it } from 'vitest'
import { defaultUserPreferences, userTypeValidator } from './TLUserPreferences'
describe('TLUserPreferences consistency', () => {
// When adding a new user preference, add it to this list AND update:
// 1. TLUserPreferences interface
// 2. userTypeValidator
// 3. defaultUserPreferences
// 4. Versions enum and migrateSnapshot()
const interfaceKeys = [
'name',
'color',
'locale',
'animationSpeed',
'areKeyboardShortcutsEnabled',
'edgeScrollSpeed',
'colorScheme',
'isSnapMode',
'isWrapMode',
'isDynamicSizeMode',
'isPasteAtCursorMode',
'enhancedA11yMode',
'inputMode',
'isZoomDirectionInverted',
] as const
it('defaultUserPreferences contains all TLUserPreferences keys (except id)', () => {
const defaultKeys = Object.keys(defaultUserPreferences).sort()
const expected = [...interfaceKeys].sort()
expect(defaultKeys).toEqual(expected)
})
it('userTypeValidator validates all TLUserPreferences keys', () => {
// Access the internal config property to check which keys the validator covers
const validatorKeys = Object.keys((userTypeValidator as any).config).sort()
const expected = ['id', ...interfaceKeys].sort()
expect(validatorKeys).toEqual(expected)
})
})