From 7975e506217b82a051607430e2997b8979a57bd5 Mon Sep 17 00:00:00 2001 From: Onno van der Zee Date: Mon, 21 Sep 2015 11:38:10 +0200 Subject: [PATCH] element + angular-js class-name are not overqualified, they always specify in addition to the unseen styles of the framework --- src/rules/overqualified-elements.js | 2 +- tests/rules/overqualified-elements.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/rules/overqualified-elements.js b/src/rules/overqualified-elements.js index 13e21274..3000fb9d 100644 --- a/src/rules/overqualified-elements.js +++ b/src/rules/overqualified-elements.js @@ -33,7 +33,7 @@ CSSLint.addRule({ modifier = part.modifiers[k]; if (part.elementName && modifier.type === "id"){ reporter.report("Element (" + part + ") is overqualified, just use " + modifier + " without element name.", part.line, part.col, rule); - } else if (modifier.type === "class"){ + } else if (modifier.type === "class" && modifier.text.indexOf(".ng-") === -1) { if (!classes[modifier]){ classes[modifier] = []; diff --git a/tests/rules/overqualified-elements.js b/tests/rules/overqualified-elements.js index 368fcaee..27073147 100644 --- a/tests/rules/overqualified-elements.js +++ b/tests/rules/overqualified-elements.js @@ -18,6 +18,11 @@ Assert.areEqual(0, result.messages.length); }, + "Using a dynamic class with an element should not result in a warning": function(){ + var result = CSSLint.verify("a.ng-hide { float: left;}", { "overqualified-elements": 1 }); + Assert.areEqual(0, result.messages.length); + }, + "Using a class with an element should result in one warning": function(){ var result = CSSLint.verify("li.foo { float: left;}", { "overqualified-elements": 1 }); Assert.areEqual(1, result.messages.length);