69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
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',
|
|
'',
|
|
'',
|
|
':::',
|
|
'',
|
|
':::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
|
|
})
|
|
})
|