diff --git a/src/core/rules/tag-pair.ts b/src/core/rules/tag-pair.ts index 7b20cfe80..7b5b199b9 100644 --- a/src/core/rules/tag-pair.ts +++ b/src/core/rules/tag-pair.ts @@ -16,6 +16,7 @@ export default { stack.push({ tagName: tagName, line: event.line, + col: event.col, raw: event.raw, }) } @@ -46,8 +47,8 @@ export default { )} ], start tag match failed [ ${lastEvent.raw} ] on line ${ lastEvent.line }.`, - event.line, - event.col, + lastEvent.line || event.line, + lastEvent.col || event.col, this, event.raw ) diff --git a/test/rules/tag-pair.spec.js b/test/rules/tag-pair.spec.js index ffdd6a3a6..45fd4d8ad 100644 --- a/test/rules/tag-pair.spec.js +++ b/test/rules/tag-pair.spec.js @@ -12,7 +12,7 @@ describe(`Rules: ${ruleId}`, () => { expect(messages.length).toBe(2) expect(messages[0].rule.id).toBe(ruleId) expect(messages[0].line).toBe(1) - expect(messages[0].col).toBe(9) + expect(messages[0].col).toBe(5) expect(messages[1].rule.id).toBe(ruleId) expect(messages[1].line).toBe(1) expect(messages[1].col).toBe(20) @@ -24,6 +24,17 @@ describe(`Rules: ${ruleId}`, () => { expect(messages[0].col).toBe(9) }) + it('No end tag should result in an error with correct line number and column of the start tag', () => { + const code = '
\r\n

\r\n

aaa

\r\n

' + const messages = HTMLHint.verify(code, ruleOptions) + expect(messages.length).toBe(1) + expect(messages[0].rule.id).toBe(ruleId) + expect(messages[0].line).not.toBe(4) + expect(messages[0].col).not.toBe(1) + expect(messages[0].line).toBe(2) + expect(messages[0].col).toBe(3) + }) + it('No start tag should result in an error', () => { const code = '' const messages = HTMLHint.verify(code, ruleOptions)