eslint-plugin-angular
Version:
ESLint rules for AngularJS projects
48 lines (43 loc) • 2.72 kB
JavaScript
'use strict';
// ------------------------------------------------------------------------------
// Requirements
// ------------------------------------------------------------------------------
var rule = require('../rules/controller-as-route');
var RuleTester = require('eslint').RuleTester;
var commonFalsePositives = require('./utils/commonFalsePositives');
// ------------------------------------------------------------------------------
// Tests
// ------------------------------------------------------------------------------
var eslintTester = new RuleTester();
eslintTester.run('controller-as-route', rule, {
valid: [
'$routeProvider.when("/myroute", {controller: "MyController", controllerAs: "vm"})',
'$routeProvider.when("/myroute", {controller: "MyController as vm"})',
'$routeProvider.when("/myroute2", {template: "<div></div>"})',
'$stateProvider.state("mystate", {controller: "MyController", controllerAs: "vm"})',
'$stateProvider.state("mystate2", {controller: "MyController as vm"})',
'$stateProvider.state("mystate2", {template: "<div></div>"})',
'something.when("string", {controller: "MyController"})',
'when("string", {controller: "MyController"})',
'state("mystate2", {})',
'var state = "mystate2"',
'something[type][changeType][state](test)',
'var when = "mystate2"',
'something[type][changeType][when](test)',
'$stateProvider.state();'
].concat(commonFalsePositives),
invalid: [
{code: '$routeProvider.when("/myroute", {controller: "MyController as vm", controllerAs: "vm"})',
errors: [{message: 'The controllerAs syntax is defined twice for the route "/myroute"'}]},
{code: '$routeProvider.when("/myroute", {controller: "MyController"})',
errors: [{message: 'Route "/myroute" should use controllerAs syntax'}]},
{code: '$routeProvider.when("/myroute", {controller: "MyController", controllerAs: "vm"}).when("/myroute2", {controller: "MyController"})',
errors: [{message: 'Route "/myroute2" should use controllerAs syntax'}]},
{code: '$stateProvider.state("mystate", {controller: "MyController"})',
errors: [{message: 'State "mystate" should use controllerAs syntax'}]},
{code: '$stateProvider.state("mystate", {controller: "MyController", controllerAs: "vm"}).state("mystate2", {controller: "MyController"})',
errors: [{message: 'State "mystate2" should use controllerAs syntax'}]},
{code: '$stateProvider.state({name: "myobjstate", controller: "MyController"})',
errors: [{message: 'State "myobjstate" should use controllerAs syntax'}]}
]
});