mirror of
https://github.com/larvit/adf-codec.git
synced 2026-11-12 11:48:29 +01:00
24 lines
973 B
TypeScript
24 lines
973 B
TypeScript
import assert from 'node:assert/strict'
|
|
import fc from 'fast-check'
|
|
import test from 'node:test'
|
|
|
|
import { adfDocument, propertyRuns, propertyTimeout } from './property-harness.ts'
|
|
import { adfToMarkdown } from './markdown/emit/adf-to-markdown.ts'
|
|
import { markdownToAdf } from './markdown/parse/markdown-to-adf.ts'
|
|
import { toEditorNormal } from './adf/editor-normal.ts'
|
|
|
|
const gateRuns = 1600
|
|
|
|
test('a generated document refuses to emit, or its markdown reads back to it', { timeout: propertyTimeout }, () => {
|
|
fc.assert(
|
|
fc.property(adfDocument, (document) => {
|
|
const emitted = adfToMarkdown(document)
|
|
if (!emitted.ok) return
|
|
const read = markdownToAdf(emitted.value)
|
|
assert.ok(read.ok, read.ok ? '' : `${read.error.code}: ${read.error.message} — reading ${JSON.stringify(emitted.value)}`)
|
|
assert.deepEqual(toEditorNormal(read.value), document, `reading ${JSON.stringify(emitted.value)}`)
|
|
}),
|
|
propertyRuns(gateRuns),
|
|
)
|
|
})
|