diff --git a/rules/require-array-join-separator.js b/rules/require-array-join-separator.js index 50fa5c176a..b09b2f18eb 100644 --- a/rules/require-array-join-separator.js +++ b/rules/require-array-join-separator.js @@ -9,7 +9,11 @@ const messages = { const selector = matches([ // `foo.join()` - methodCallSelector({method: 'join', argumentsLength: 0}), + methodCallSelector({ + method: 'join', + argumentsLength: 0, + includeOptionalMember: true, + }), // `[].join.call(foo)` and `Array.prototype.join.call(foo)` [ methodCallSelector({method: 'call', argumentsLength: 1}), diff --git a/test/require-array-join-separator.mjs b/test/require-array-join-separator.mjs index fa7740cb36..b0f861aa0e 100644 --- a/test/require-array-join-separator.mjs +++ b/test/require-array-join-separator.mjs @@ -8,7 +8,8 @@ test.snapshot({ 'foo.join(",")', 'join()', 'foo.join(...[])', - 'foo?.join()', + 'foo.join?.()', + 'foo?.join?.()', 'foo[join]()', 'foo["join"]()', '[].join.call(foo, ",")', @@ -71,5 +72,6 @@ test.snapshot({ )/**/ ) `, + 'foo?.join()', ], }); diff --git a/test/snapshots/require-array-join-separator.mjs.md b/test/snapshots/require-array-join-separator.mjs.md index 3a1d224163..820c0351f9 100644 --- a/test/snapshots/require-array-join-separator.mjs.md +++ b/test/snapshots/require-array-join-separator.mjs.md @@ -192,3 +192,19 @@ Generated by [AVA](https://avajs.dev). | ^^^^ Missing the separator argument.␊ 26 | )␊ ` + +## Invalid #8 + 1 | foo?.join() + +> Output + + `␊ + 1 | foo?.join(',')␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo?.join()␊ + | ^^ Missing the separator argument.␊ + ` diff --git a/test/snapshots/require-array-join-separator.mjs.snap b/test/snapshots/require-array-join-separator.mjs.snap index 93be20ae95..e41d3d4a82 100644 Binary files a/test/snapshots/require-array-join-separator.mjs.snap and b/test/snapshots/require-array-join-separator.mjs.snap differ