From 192059768879c7d08bc8f3618692376504249fe0 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Wed, 30 Mar 2022 16:37:04 +0800 Subject: [PATCH] `prefer-string-trim-start-end`: Check optional chaining (#1768) --- rules/prefer-string-trim-start-end.js | 1 + test/prefer-string-trim-start-end.mjs | 3 ++- .../prefer-string-trim-start-end.mjs.md | 8 ++++---- .../prefer-string-trim-start-end.mjs.snap | Bin 482 -> 503 bytes 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/rules/prefer-string-trim-start-end.js b/rules/prefer-string-trim-start-end.js index 12f25bbc1f..c1fa98153b 100644 --- a/rules/prefer-string-trim-start-end.js +++ b/rules/prefer-string-trim-start-end.js @@ -10,6 +10,7 @@ const selector = [ methodCallSelector({ methods: ['trimLeft', 'trimRight'], argumentsLength: 0, + includeOptionalMember: true, }), ' > .callee', ' > .property', diff --git a/test/prefer-string-trim-start-end.mjs b/test/prefer-string-trim-start-end.mjs index 8e2645d046..6972ba0776 100644 --- a/test/prefer-string-trim-start-end.mjs +++ b/test/prefer-string-trim-start-end.mjs @@ -6,6 +6,7 @@ const {test} = getTester(import.meta); test.snapshot({ valid: [ 'foo.trimStart()', + 'foo.trimStart?.()', 'foo.trimEnd()', // Not `CallExpression` 'new foo.trimLeft();', @@ -40,6 +41,6 @@ test.snapshot({ /* comment */ ) `, - 'foo.trimLeft()', + 'foo?.trimLeft()', ], }); diff --git a/test/snapshots/prefer-string-trim-start-end.mjs.md b/test/snapshots/prefer-string-trim-start-end.mjs.md index 396b42c08e..bd43386849 100644 --- a/test/snapshots/prefer-string-trim-start-end.mjs.md +++ b/test/snapshots/prefer-string-trim-start-end.mjs.md @@ -113,17 +113,17 @@ Generated by [AVA](https://avajs.dev). ` ## Invalid #7 - 1 | foo.trimLeft() + 1 | foo?.trimLeft() > Output `␊ - 1 | foo.trimStart()␊ + 1 | foo?.trimStart()␊ ` > Error 1/1 `␊ - > 1 | foo.trimLeft()␊ - | ^^^^^^^^ Prefer \`String#trimStart()\` over \`String#trimLeft()\`.␊ + > 1 | foo?.trimLeft()␊ + | ^^^^^^^^ Prefer \`String#trimStart()\` over \`String#trimLeft()\`.␊ ` diff --git a/test/snapshots/prefer-string-trim-start-end.mjs.snap b/test/snapshots/prefer-string-trim-start-end.mjs.snap index 9465717072b5aa58d5dea735d87f366fe251178f..994475dec35b42e6e3ea7b1b063f58e9fc213021 100644 GIT binary patch delta 425 zcmV;a0apIv1NQ?WK~_N^Q*L2!b7*gLAa*he0sxu=zrR))CmViW!8{M{i7AmHDu1oY zKXd*lX4-pXrvHnhHB;9yfkiJtu_Ge`L*c5`dqlgH%S@l#Uw_&6fGiVOGzE$;0daNa zvhs2*K{=QA8&s9ezCC3Ei++dV6riQ^{C^c5Jik4b+q~NI?24Pun82cEptz2ifnk$q z>70F&605lDm}Wek!6?lH7F`C#a(^rg3~yFkwlb8yr(LwwY5iIK#!XCMQCBG52E@!j zAANl|95Pik5TnBkh2qM^x!qPB?34!hc*%=C;BplSsm zs8K)xaWJ3|P?VaMTBMK=4AhaAt_-&$K_R~kO&n@of*z{<5(u~2gY6A2NjEGiL3d>$ z!j<-LXQDa|pPQg&VsRD39CSyCq6Hw9a7#c7H_YIoW+;iHIS6YY#bb#|tS+KP5R+^H z83OS1lZOEyJ9ZdWfjrMiX=IS#Vn!*bg9+ulENFBQlk2FNmL#F>Qv!yl67JNL40Rqt T8D^fNG(`abpRq{tss#W5c^){Ho-%<&lc4xK5Kr2C zFt8?zb7rQ|^BawPH@KLN!%?cGd-gOs9FIC zY7|gF91JJ~6s4x67AYhI19jx3E5q$bP{=Ps6Nj3YpoeO|D4JWbI57dui6WRTqo#wz z(Hs<9l2}xN?xc7up@!8(*c=2k5sQ-`#teQJlYs#l0y_1RoB<#^n;2GsJkLpK@*u&* yj8aes6Uug3(C8v2%TY6ROG4eJ1PoCn+^H!U>O6!pjPyitiUI)K%(7Rf1pokbIJQ~<