Skip to content

Commit

Permalink
Fix: array-bracket-spacing for destructuring typed parameter (fixes b…
Browse files Browse the repository at this point in the history
  • Loading branch information
zaygraveyard committed Dec 20, 2015
1 parent 8e2f6f9 commit 5bf2f73
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 2 deletions.
7 changes: 6 additions & 1 deletion rules/array-bracket-spacing.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,16 @@ module.exports = function(context) {

var first = sourceCode.getFirstToken(node),
second = sourceCode.getFirstToken(node, 1),
penultimate = sourceCode.getLastToken(node, 1),
last = sourceCode.getLastToken(node),
firstElement = node.elements[0],
lastElement = node.elements[node.elements.length - 1];

while (last.type !== "Punctuation" && last.value !== "]") {
last = sourceCode.getTokenBefore(last);
}

var penultimate = sourceCode.getTokenBefore(last);

var openingBracketMustBeSpaced =
options.objectsInArraysException && isObjectType(firstElement) ||
options.arraysInArraysException && isArrayType(firstElement) ||
Expand Down
61 changes: 60 additions & 1 deletion tests/array-bracket-spacing.js
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,14 @@ ruleTester.run("array-bracket-spacing", rule, {
{ code: "var foo = [1, {'bar': 'baz'}, 5];", options: ["never"] },
{ code: "var foo = [{'bar': 'baz'}, 1, 5];", options: ["never"] },
{ code: "var foo = [1, 5, {'bar': 'baz'}];", options: ["never"] },
{ code: "var obj = {'foo': [1, 2]}", options: ["never"] }
{ code: "var obj = {'foo': [1, 2]}", options: ["never"] },

// Babel test cases.
// always - destructuring typed array param
{ code: "function fn([ a,b ]: Array<any>){}", options: ["always"], parser: "babel-eslint", ecmaFeatures: { destructuring: true } },

// never - destructuring typed array param
{ code: "function fn([a,b]: Array<any >){}", options: ["never"], parser: "babel-eslint", ecmaFeatures: { destructuring: true } },

],

Expand Down Expand Up @@ -669,6 +676,58 @@ ruleTester.run("array-bracket-spacing", rule, {
column: 26
}
]
},

// Babel test cases.

// always - destructuring typed array param
{
code: "function fn([a,b]: Array<any>){}",
output: "function fn([ a,b ]: Array<any>){}",
options: ["always"],
parser: "babel-eslint",
ecmaFeatures: {
destructuring: true
},
errors: [
{
message: "A space is required after '['",
type: "ArrayPattern",
line: 1,
column: 13
},
{
message: "A space is required before ']'",
type: "ArrayPattern",
line: 1,
column: 17
}
]
},

// never - destructuring typed array param
{
code: "function fn([ a,b ]: Array<any>){}",
output: "function fn([a,b]: Array<any>){}",
options: ["never"],
parser: "babel-eslint",
ecmaFeatures: {
destructuring: true
},
errors: [
{
message: "There should be no space after '['",
type: "ArrayPattern",
line: 1,
column: 13
},
{
message: "There should be no space before ']'",
type: "ArrayPattern",
line: 1,
column: 19
}
]
}
]
});

0 comments on commit 5bf2f73

Please sign in to comment.