From 15f902881dbc9d5f97af0bebbf454ae0fad8eef7 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 2 Nov 2021 13:05:41 +0800 Subject: [PATCH] `require-array-join-separator`: Check optional member (#1569) --- rules/require-array-join-separator.js | 6 +++++- test/require-array-join-separator.mjs | 4 +++- .../require-array-join-separator.mjs.md | 16 ++++++++++++++++ .../require-array-join-separator.mjs.snap | Bin 624 -> 668 bytes 4 files changed, 24 insertions(+), 2 deletions(-) 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 93be20ae958723a7008616baef0d6df6d1156eb4..e41d3d4a82c2fc48a1d314c28f32ace25879deb6 100644 GIT binary patch delta 654 zcmV;90&)HD1e^tbK~_N^Q*L2!b7*gLAa*he0stLLFr1Mnn7k$$+c&}2ON$?i2mk;8 z000036Jumx;9wA(AU@I6sqtn>MgG(U$y?%?7(hT5iu-_A`n1=nxi97_+`0Yl&RphQ zqD)}XO;F4VG{y9jxGwV+#gF{eMys1TnKPNdqPa{EEWyHmz)-!wOh`3DTGhDo#*!}u zj6fA2Q5Ps)48--j9A$SOx+nEKU{!N&8h;=YSo9bai?cE?OkDr1%Gx|WhwJ*Ajpyum zCozFVgP{045YH|XC=`|vRSKN#trGKW$6F?_CCdbXJBAvU_f}uiv}5bOd@ zkc$l=PJqim+yIe+I07MO3FQNW56Cq#K$SLvxP%iFq((+4rW!%q!l?sdo1jWToB~NQ zFfou3n^2>UY0hXk6AEWLlyC+oYm?dm9CPIYn%Y1d#R9HUfy6>V6j3PPDifR$Wdimh zfy5GlQ5R~bV^L9JrCvc%eo1~wWkD)>SYRt8^Pz4bpcQA4i5gTSx?7t#cVmWNHZiUy o%FQIYSP4f$Q-Fo8HLCgu9ElC69;g(T`-lif0H9QuAT0<00DArndH?_b delta 609 zcmV-n0-pVx1@HuaK~_N^Q*L2!b7*gLAa*he0sxf~q3GmfQ!}pkc?dIep`ss)2mk;8 z00003`@+D$z|J5zL42aCQ{&B&iu|bylDEV&F@S(B6!!tK=_her<}HdJ`KygqH+3>+ zGJ!?EF+%V{W(J1p1!h938Pcl8oi~`ixNxnixd)z(o1tw^GftkEMSUc1Q`UfLIcDw0x~%DwY2m>9AgkC8pJXI zvEbsSAYLqpWriYd4(92Bm=-7!mS7&p10cT}Aj=tD8p1Uh8lgylZRZ4e7{o(yfg#uh zoFEq)LYx4Xfw%!81#tvI&JxN8h98h?WPmDd1aS!`C}fR{P)s#~xP?;(#5O^df;a^d zcQ7%Kn@}T?Y0hXk6AEWLlyC;8Zj%iH9C{fPO>H2K{D~`jl9oFeMWIdsng}*u1Jec0 zP#3_Jpj%BuIG`A)3$@d+s3@^gub?QuB)_DxAQe3