import assert from 'node:assert/strict' import test from 'node:test' import { resolveActiveBlockContext } from '../lib/markdown-block-context.js' test('인용 옵션이 있는 블록 컨텍스트를 공통 인용 파서로 판별한다', () => { assert.deepEqual(resolveActiveBlockContext([ '> {bg=purple}', '> 첫 줄', '> 둘째 줄', '', '다음 문단' ].join('\n'), 1), { kind: 'quote', startLine: 0, endLine: 2, quoteBackground: 'purple', hasQuoteOptions: true }) }) test('인용 옵션이 없는 블록 컨텍스트는 기본 배경을 사용한다', () => { assert.deepEqual(resolveActiveBlockContext([ '이전 문단', '> 첫 줄', '> 둘째 줄' ].join('\n'), 2), { kind: 'quote', startLine: 1, endLine: 2, quoteBackground: 'gray', hasQuoteOptions: false }) }) test('아래쪽 코드 블록은 위의 리스트 줄 컨텍스트로 잡지 않는다', () => { const markdown = [ ':::gallery', '![](/uploads/one.png)', '![](/uploads/two.png)', ':::', '', ':::callout emoji=none bg=blue', '!!! 내용', ':::', '', '---', '', '', '- 아아아', '- 아아아아', '- 아아아아', '- 라라렘', '', '', '```javascript', 'console.log("hello")', '```' ].join('\n') assert.equal(resolveActiveBlockContext(markdown, 15), null) assert.deepEqual(resolveActiveBlockContext(markdown, 18), { kind: 'code', startLine: 18, endLine: 20, language: 'javascript', showLineNumbers: false }) })