Skip to content

Commit

Permalink
Merge pull request #229 from nlfurniss/master
Browse files Browse the repository at this point in the history
Fix no-capital-letters-in-routes so it deals with MemberExpressions
  • Loading branch information
rwjblue committed Mar 21, 2018
2 parents d156d27 + 62a4a04 commit 6c2202d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
20 changes: 8 additions & 12 deletions lib/rules/no-capital-letters-in-routes.js
@@ -1,6 +1,8 @@
'use strict';

const ember = require('../utils/ember');
const utils = require('../utils/utils');

//------------------------------------------------------------------------------
// Routing - No capital letters in routes
//------------------------------------------------------------------------------
Expand All @@ -22,19 +24,13 @@ module.exports = {

return {
CallExpression(node) {
if (
!ember.isRoute(node) ||
!node.arguments[0] ||
(node.arguments[0] && node.arguments[0].type === 'Identifier')
) {
return;
}

const routeName = node.arguments[0].value;
const hasAnyUppercaseLetter = Boolean(routeName.match('[A-Z]'));
if (ember.isRoute(node) && node.arguments[0] && utils.isLiteral(node.arguments[0])) {
const routeName = node.arguments[0].value;
const hasAnyUppercaseLetter = Boolean(routeName.match('[A-Z]'));

if (hasAnyUppercaseLetter) {
report(node);
if (hasAnyUppercaseLetter) {
report(node);
}
}
},
};
Expand Down
16 changes: 11 additions & 5 deletions tests/lib/rules/no-capital-letters-in-routes.js
Expand Up @@ -11,7 +11,9 @@ const RuleTester = require('eslint').RuleTester;
// Tests
//------------------------------------------------------------------------------

const eslintTester = new RuleTester();
const eslintTester = new RuleTester({
parserOptions: { ecmaVersion: 6, sourceType: 'module' }
});
eslintTester.run('no-capital-letters-in-routes', rule, {

valid: [
Expand All @@ -20,9 +22,9 @@ eslintTester.run('no-capital-letters-in-routes', rule, {
{
code: `
const routeName="about";
this.route(routeName);`,
parserOptions: { ecmaVersion: 6, sourceType: 'module' }
}
this.route(routeName);
this.route(DASH_TAB.ACTIVITY);`,
},
],

invalid: [{
Expand All @@ -35,6 +37,10 @@ eslintTester.run('no-capital-letters-in-routes', rule, {
errors: [{
message: 'Unexpected capital letter in route\'s name',
}]
}, {
code: 'this.route("DASH_TAB.ACTIVITY");',
errors: [{
message: 'Unexpected capital letter in route\'s name',
}]
}],

});

0 comments on commit 6c2202d

Please sign in to comment.