From fe4f3c6732d76ec78a19e97d2640e63be3dd6735 Mon Sep 17 00:00:00 2001 From: Nicolas HENRY Date: Tue, 19 May 2020 06:29:10 +0200 Subject: [PATCH] fix(attr-no-unnecessary-whitespace): fix when equals symbol in value (#405) Co-authored-by: Shinigami --- src/rules/attr-no-unnecessary-whitespace.js | 26 +++++++++---------- ...=> attr-no-unnecessary-whitespace.spec.js} | 8 +++--- 2 files changed, 18 insertions(+), 16 deletions(-) rename test/rules/{attr-no-unnecessary-whitespace.js => attr-no-unnecessary-whitespace.spec.js} (78%) diff --git a/src/rules/attr-no-unnecessary-whitespace.js b/src/rules/attr-no-unnecessary-whitespace.js index 3ea911f49..c3a4dc9dc 100644 --- a/src/rules/attr-no-unnecessary-whitespace.js +++ b/src/rules/attr-no-unnecessary-whitespace.js @@ -10,19 +10,19 @@ export default { var col = event.col + event.tagName.length + 1 for (var i = 0; i < attrs.length; i++) { - if ( - exceptions.indexOf(attrs[i].name) === -1 && - /[^=](\s+=\s+|=\s+|\s+=)/g.test(attrs[i].raw.trim()) - ) { - reporter.error( - "The attribute '" + - attrs[i].name + - "' must not have spaces between the name and value.", - event.line, - col + attrs[i].index, - self, - attrs[i].raw - ) + if (exceptions.indexOf(attrs[i].name) === -1) { + var match = /(\s*)=(\s*)/.exec(attrs[i].raw.trim()) + if (match && (match[1].length !== 0 || match[2].length !== 0)) { + reporter.error( + "The attribute '" + + attrs[i].name + + "' must not have spaces between the name and value.", + event.line, + col + attrs[i].index, + self, + attrs[i].raw + ) + } } } }) diff --git a/test/rules/attr-no-unnecessary-whitespace.js b/test/rules/attr-no-unnecessary-whitespace.spec.js similarity index 78% rename from test/rules/attr-no-unnecessary-whitespace.js rename to test/rules/attr-no-unnecessary-whitespace.spec.js index 5952c4806..299d7dd11 100644 --- a/test/rules/attr-no-unnecessary-whitespace.js +++ b/test/rules/attr-no-unnecessary-whitespace.spec.js @@ -24,8 +24,10 @@ describe('Rules: ' + ruldId, function () { }) it('Attribute without spaces should not result in an error', function () { - var code = '
' - var messages = HTMLHint.verify(code, ruleOptions) - expect(messages.length).to.be(0) + var codes = ['
', '
'] + for (var i = 0; i < codes.length; i++) { + var messages = HTMLHint.verify(codes[i], ruleOptions) + expect(messages.length).to.be(0) + } }) })