Automerge backed Markdown editor for the Atmosphere
Something went wrong. Try again.
12345678910111213141516171819202122232425262728// src/editor/__tests__/inline-semantic-ops.test.tsimport { describe, it, expect } from 'vitest'import type { ChangeSpec } from '@codemirror/state'import { inlineSemanticTextChangeFromChangeSpec } from '../inline-semantic-ops'
describe('inlineSemanticTextChangeFromChangeSpec', () => { it('extracts a text change from a matching change spec', () => { expect(inlineSemanticTextChangeFromChangeSpec({ from: 2, to: 5, insert: 'abc' })) .toEqual({ from: 2, to: 5, insert: 'abc' }) })
it('returns undefined for non-object specs', () => { expect(inlineSemanticTextChangeFromChangeSpec('plain text' as unknown as ChangeSpec)).toBeUndefined() expect(inlineSemanticTextChangeFromChangeSpec([{ from: 0, insert: 'x' }] as unknown as ChangeSpec)).toBeUndefined() expect(inlineSemanticTextChangeFromChangeSpec(null as unknown as ChangeSpec)).toBeUndefined() })
it('returns undefined for objects missing the required fields', () => { expect(inlineSemanticTextChangeFromChangeSpec({ from: 0, to: 1 } as unknown as ChangeSpec)).toBeUndefined() expect(inlineSemanticTextChangeFromChangeSpec({ from: 0, insert: 'x' } as unknown as ChangeSpec)).toBeUndefined() expect(inlineSemanticTextChangeFromChangeSpec({ to: 1, insert: 'x' } as unknown as ChangeSpec)).toBeUndefined() })
it('returns undefined when the insert value is not a string', () => { expect(inlineSemanticTextChangeFromChangeSpec({ from: 0, to: 1, insert: 42 } as unknown as ChangeSpec)).toBeUndefined() })})