eslint-plugin-angular
Version:
ESLint rules for AngularJS projects
159 lines (154 loc) • 8.02 kB
JavaScript
'use strict';
// ------------------------------------------------------------------------------
// Requirements
// ------------------------------------------------------------------------------
var rule = require('../rules/component-limit');
var RuleTester = require('eslint').RuleTester;
var commonFalsePositives = require('./utils/commonFalsePositives');
// ------------------------------------------------------------------------------
// Tests
// ------------------------------------------------------------------------------
var eslintTester = new RuleTester();
eslintTester.run('component-limit', rule, {
valid: [
'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();',
'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); });',
'$httpBackend.expectGET("").respond(200, dummyData);$httpBackend.expectGET("").respond(200, dummyData);',
'angular.module("").filter("", function() {var emptyArray = [1, 2, 3].filter(function() {});});',
'it("", function() {});it("", function() {});',
'describe("", function() {it("", function() {});it("", function() {});});',
'angular.module("").service("", function() {});',
{
code: 'angular.module("").controller("", function() {}).directive("", function() {}).factory("", function() {}).filter("", function() {}).provider("", function() {}).service("", function() {});',
options: [6]
}
].concat(commonFalsePositives),
invalid: [
// animation
{
code: 'angular.module("").animation().animation();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").animation(); app.animation();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.animation().animation();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// config
{
code: 'angular.module("").config().config();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").config(); app.config();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.config().config();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// controller
{
code: 'angular.module("").controller().controller();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").controller(); app.controller();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.controller().controller();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// directive
{
code: 'angular.module("").directive().directive();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").directive(); app.directive();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.directive().directive();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// factory
{
code: 'angular.module("").factory().factory();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").factory(); app.factory();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.factory().factory();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// filter
{
code: 'angular.module("").filter().filter();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").filter(); app.filter();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.filter().filter();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// provider
{
code: 'angular.module("").provider().provider();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").provider(); app.provider();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.provider().provider();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// service
{
code: 'angular.module("").run().run();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").run(); app.run();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.run().run();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// service
{
code: 'angular.module("").service().service();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module("").service(); app.service();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
}, {
code: 'var app = angular.module(""); app.service().service();',
errors: [{message: 'There may be at most 1 AngularJS component per file, but found 2'}]
},
// Using non-default settings
{
code: 'angular.module("").controller("", function() {}).directive("", function() {}).factory("", function() {}).filter("", function() {}).provider("", function() {}).service("", function() {});',
options: [5],
errors: [{
message: 'There may be at most 5 AngularJS components per file, but found 6'
}]
}
]
});