Add more tests for recent changes, handle additional edge cases.

This commit is contained in:
David Anson 2016-09-10 19:23:50 -07:00
parent 0c68509266
commit 256e5a7e73
4 changed files with 122 additions and 16 deletions

View file

@ -4,7 +4,8 @@ var shared = require("./shared");
// Returns the indent for a token
function indentFor(token) {
return token.line.length - token.line.trimLeft().length;
var line = token.line.replace(/^[\s>]*(> |>)/, "");
return line.length - line.trimLeft().length;
}
// Returns the heading style for a heading token
@ -581,7 +582,7 @@ module.exports = [
blockquoteNesting++;
} else if (token.type === "blockquote_close") {
blockquoteNesting--;
} else if ((token.type === "inline") && blockquoteNesting > 0) {
} else if ((token.type === "inline") && (blockquoteNesting > 0)) {
token.content.split(shared.newLineRe)
.forEach(function forLine(line, offset) {
if (/^\s/.test(line) ||
@ -622,7 +623,7 @@ module.exports = [
if (!list.unordered) {
var number = 1;
list.items.forEach(function forItem(item) {
var re = new RegExp("^(\\s|> )*" + String(number) + "\\.");
var re = new RegExp("^[\\s>]*" + String(number) + "\\.");
if (!re.test(item.line)) {
errors.push(item.lineNumber);
}
@ -652,8 +653,8 @@ module.exports = [
(allSingle ? ulSingle : ulMulti) :
(allSingle ? olSingle : olMulti);
list.items.forEach(function forItem(item) {
var match = /^(\s|> )*\S+(\s+)/.exec(item.line);
if (!match || (match[2].length !== expectedSpaces)) {
var match = /^[\s>]*\S+(\s+)/.exec(item.line);
if (!match || (match[1].length !== expectedSpaces)) {
errors.push(item.lineNumber);
}
});