eslint-plugin-angular
Version:
ESLint rules for AngularJS projects
46 lines (37 loc) • 1.48 kB
JavaScript
;
// ------------------------------------------------------------------------------
// Requirements
// ------------------------------------------------------------------------------
var rule = require('../rules/no-private-call');
var RuleTester = require('eslint').RuleTester;
var commonFalsePositives = require('./utils/commonFalsePositives');
// ------------------------------------------------------------------------------
// Tests
// ------------------------------------------------------------------------------
var eslintTester = new RuleTester();
var variables = ['$scope', '$rootScope'];
var bad = ['$$childHead', '$$childTail', '$$prevSibling', '$$nextSibling',
'$$listeners', '$$phase', '$$watchers', '$$asyncQueue', '$$postDigestQueue',
'$$isolateBindings', '$$postDigest(function() {})', '$$destroyed', '$$unknownFutureVariable'];
var invalid = [];
variables.forEach(function(variable) {
bad.forEach(function(b) {
invalid.push({
code: variable + '.' + b,
errors: [{message: 'Using $$-prefixed Angular objects/methods are not recommended'}]
});
});
});
eslintTester.run('no-private-call', rule, {
valid: [
'$scope.$apply(function() {})',
'$rootScope.$apply(function() {})',
{
code: '$scope.$$watchers',
options: [{
allow: ['$$watchers']
}]
}
].concat(commonFalsePositives),
invalid: invalid
});