Skip to content

Commit

Permalink
Test and improve Code_Block
Browse files Browse the repository at this point in the history
  • Loading branch information
thetarnav committed Feb 23, 2024
1 parent 0f79d3d commit 3283e95
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 7 deletions.
6 changes: 3 additions & 3 deletions lib/mds.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,12 +168,12 @@ export function write(s, chunk) {
continue
}

if (s.txt === "```" ||
if (char === '`' &&
s.txt === "``" ||
(s.txt.length >= 4 &&
'\n'=== s.txt[s.txt.length-3] &&
'`' === last_last_txt_char &&
'`' === last_txt_char &&
'`' === char)
'`' === last_txt_char)
) {
s.code_block_lang = null
s.txt = s.txt.slice(0, -3)
Expand Down
116 changes: 112 additions & 4 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,13 @@ function test_update_node(data, node, text) {
}
/** @type {Test_Render_Temp_Text} */
function test_render_temp_text(data, node, text) {
data.temp_text = text
data.temp_text_node = node
if (node === null || text === "") {
data.temp_text = ""
data.temp_text_node = null
} else {
data.temp_text = text
data.temp_text_node = node
}
}

const content_1 = "Hello, World!"
Expand Down Expand Up @@ -97,7 +102,7 @@ for (let level = 1; level <= 6; level += 1) {
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, renderer.data.root.children[0])
assert.equal(renderer.data.temp_text_node, null)
})

t.test(`Heading_${level} with Emphasis`, () => {
Expand Down Expand Up @@ -144,6 +149,109 @@ for (let level = 1; level <= 6; level += 1) {
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, renderer.data.root.children[0])
assert.equal(renderer.data.temp_text_node, null)
})
}

t.test("Empty Code_Block", () => {
const renderer = test_renderer()
const parser = mds.parser(renderer)

mds.write(parser, "```\n")

assert.deepEqual(renderer.data.root, {
type : mds.Token_Type.Root,
children: [{
type : mds.Token_Type.Code_Block,
children: []
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, null)

mds.write(parser, "```")

assert.deepEqual(renderer.data.root, {
type : mds.Token_Type.Root,
children: [{
type : mds.Token_Type.Code_Block,
children: [""]
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, null)

mds.end(parser)

assert.deepEqual(renderer.data.root, {
type : mds.Token_Type.Root,
children: [{
type : mds.Token_Type.Code_Block,
children: [""]
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, null)
})

t.test("Code_Block", () => {
const renderer = test_renderer()
const parser = mds.parser(renderer)

mds.write(parser, "```\n")
mds.write(parser, content_1 + "\n")
mds.write(parser, "```")

assert.deepEqual(renderer.data.root, {
type : mds.Token_Type.Root,
children: [{
type : mds.Token_Type.Code_Block,
children: [content_1]
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, null)

mds.end(parser)

assert.deepEqual(renderer.data.root, {
type : mds.Token_Type.Root,
children: [{
type : mds.Token_Type.Code_Block,
children: [content_1]
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, null)
})

t.test("Code_Block with language", () => {
const renderer = test_renderer()
const parser = mds.parser(renderer)

mds.write(parser, "```js\n")
mds.write(parser, content_1 + "\n")
mds.write(parser, "```")

assert.deepEqual(renderer.data.root, {
type : mds.Token_Type.Root,
children: [{
type : mds.Token_Type.Code_Block,
children: [content_1]
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, null)

mds.end(parser)

assert.deepEqual(renderer.data.root, {
type : mds.Token_Type.Root,
children: [{
type : mds.Token_Type.Code_Block,
children: [content_1]
}]
})
assert.equal(renderer.data.temp_text, "")
assert.equal(renderer.data.temp_text_node, null)
})

0 comments on commit 3283e95

Please sign in to comment.