From 752cd89ab31a5060586c517b22c7a399e2abfea4 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Sun, 6 Dec 2015 22:57:29 +0100 Subject: [PATCH 1/3] Remove duplicate check from angular-rule This takes up the coverage. --- rules/utils/angular-rule.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/rules/utils/angular-rule.js b/rules/utils/angular-rule.js index 5309e308..6e6ba489 100644 --- a/rules/utils/angular-rule.js +++ b/rules/utils/angular-rule.js @@ -184,9 +184,6 @@ function angularRule(ruleDefinition) { function findFunctionByNode(callExpressionNode, scope) { var node; if (callExpressionNode.callee.type === 'Identifier') { - if (callExpressionNode.callee.name !== 'inject') { - return; - } node = callExpressionNode.arguments[0]; } else if (callExpressionNode.callee.property.name === 'run' || callExpressionNode.callee.property.name === 'config') { node = callExpressionNode.arguments[0]; From 590ed2edef404abaa761bb1cace1e0665fdcfc49 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Sun, 6 Dec 2015 23:02:05 +0100 Subject: [PATCH 2/3] Add potential failing crashes These crashes are caught by angular-rule, but this was untested. This took down coverage. --- test/component-limit.js | 10 ++++++++++ test/di-order.js | 10 ++++++++++ test/di-unused.js | 12 +++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/test/component-limit.js b/test/component-limit.js index 92683555..a539b225 100644 --- a/test/component-limit.js +++ b/test/component-limit.js @@ -22,7 +22,17 @@ eslintTester.run('component-limit', rule, { 'angular.module("").factory();', 'angular.module("").filter();', 'angular.module("").provider();', + 'angular.module("").run();', 'angular.module("").service();', + 'angular.module("").animation("", "");', + 'angular.module("").config("");', + 'angular.module("").controller("", "");', + 'angular.module("").directive("", "");', + 'angular.module("").factory("", "");', + 'angular.module("").filter("", "");', + 'angular.module("").provider("", "");', + 'angular.module("").run("");', + 'angular.module("").service("", "");', // Identified potential false positives '$scope.$on("", function() {});$scope.$on("", function() {});', 'app.service("", function(myService) { var data = {}; myService.someMethod("", data); });', diff --git a/test/di-order.js b/test/di-order.js index 3cca5d61..f76b7a4d 100644 --- a/test/di-order.js +++ b/test/di-order.js @@ -28,6 +28,16 @@ eslintTester.run('di-order', rule, { 'inject(function($http, $q) {});', 'it(inject(function($http, $q) {}));', 'it(inject(function(_$http_, _$httpBackend_) {}));', + // Potential crashes + 'angular.module("").animation("", "");', + 'angular.module("").config("");', + 'angular.module("").controller("", "");', + 'angular.module("").directive("", "");', + 'angular.module("").factory("", "");', + 'angular.module("").filter("", "");', + 'angular.module("").provider("", "");', + 'angular.module("").run("");', + 'angular.module("").service("", "");', { code: 'it(inject(function(_$httpBackend_, _$http_) {}));', options: [false] diff --git a/test/di-unused.js b/test/di-unused.js index 4e337ac1..fa662398 100644 --- a/test/di-unused.js +++ b/test/di-unused.js @@ -37,7 +37,17 @@ eslintTester.run('di-unused', rule, { 'angular.module("").run(["$q", function($q) {return $q;}]);', 'inject(function($q) {_$q_ = $q;});', 'angular.module("").provider("", function() {this.$get = function($q) {return $q};});', - 'angular.module("").provider("", function() {this.$get = ["$q", function($q) {return $q}];});' + 'angular.module("").provider("", function() {this.$get = ["$q", function($q) {return $q}];});', + // Potential crashes + 'angular.module("").animation("", "");', + 'angular.module("").config("");', + 'angular.module("").controller("", "");', + 'angular.module("").directive("", "");', + 'angular.module("").factory("", "");', + 'angular.module("").filter("", "");', + 'angular.module("").provider("", "");', + 'angular.module("").run("");', + 'angular.module("").service("", "");' ].concat(commonFalsePositives), invalid: [ // animation From 396267ae880daeb57c6f9386d2f21c151176cfc7 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Sun, 6 Dec 2015 23:05:17 +0100 Subject: [PATCH 3/3] Add potential failures for component definitions This takes up the coverage for angular-rule too 100%. --- test/no-run-logic.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/no-run-logic.js b/test/no-run-logic.js index 321a9a98..58dae054 100644 --- a/test/no-run-logic.js +++ b/test/no-run-logic.js @@ -24,7 +24,17 @@ eslintTester.run('no-run-logic', rule, { 'angular.module("").run(function() {foo(null)});', 'angular.module("").run(function() {foo(undefined)});', 'angular.module("").run(function() {foo("bar")});', - 'angular.module("").run(function() {foo(bar)});' + 'angular.module("").run(function() {foo(bar)});', + // don't crash on component definitions + 'angular.module("").animation();', + 'angular.module("").config();', + 'angular.module("").controller();', + 'angular.module("").directive();', + 'angular.module("").factory();', + 'angular.module("").filter();', + 'angular.module("").provider();', + 'angular.module("").run();', + 'angular.module("").service();' ], invalid: [ // Nested function declarations