diff --git a/package.json b/package.json index 5b35b5c36..e6d63a321 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "eslint-import-resolver-oxc": "^0.4.0", "eslint-plugin-better-mutation": "^1.5.0", "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-eslint-plugin": "^6.3.1", + "eslint-plugin-eslint-plugin": "^6.3.2", "eslint-plugin-import-x": "^4.4.2", "eslint-plugin-jsdoc": "^50.5.0", "eslint-plugin-perfectionist": "^3.9.1", diff --git a/packages/plugins/eslint-plugin-react-x/src/rules/no-leaked-conditional-rendering.spec.ts b/packages/plugins/eslint-plugin-react-x/src/rules/no-leaked-conditional-rendering.spec.ts index 79db316e3..77c953da5 100644 --- a/packages/plugins/eslint-plugin-react-x/src/rules/no-leaked-conditional-rendering.spec.ts +++ b/packages/plugins/eslint-plugin-react-x/src/rules/no-leaked-conditional-rendering.spec.ts @@ -3,6 +3,29 @@ import rule, { RULE_NAME } from "./no-leaked-conditional-rendering"; ruleTesterWithTypes.run(RULE_NAME, rule, { invalid: [ + { + code: /* tsx */ ` + /// + /// + + const a = <>{"" && }; + `, + errors: [ + { messageId: "noLeakedConditionalRendering" }, + ], + }, + { + code: /* tsx */ ` + /// + /// + + const someString = ""; + const a = <>{someString && }; + `, + errors: [ + { messageId: "noLeakedConditionalRendering" }, + ], + }, { code: /* tsx */ ` /// @@ -400,7 +423,7 @@ ruleTesterWithTypes.run(RULE_NAME, rule, { const a = <> {0 ? : null} - {'' && } + {'0' && } {NaN ? : null} `, diff --git a/packages/plugins/eslint-plugin-react-x/src/rules/no-leaked-conditional-rendering.ts b/packages/plugins/eslint-plugin-react-x/src/rules/no-leaked-conditional-rendering.ts index 05c6b4396..ebf352c63 100644 --- a/packages/plugins/eslint-plugin-react-x/src/rules/no-leaked-conditional-rendering.ts +++ b/packages/plugins/eslint-plugin-react-x/src/rules/no-leaked-conditional-rendering.ts @@ -55,7 +55,6 @@ const allowedVariants = [ "nullish", "object", "string", - "falsy string", "falsy boolean", "truthy bigint", "truthy boolean", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f982178dd..e0bb85b2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,16 +5,16 @@ settings: excludeLinksFromLockfile: false overrides: - '@typescript-eslint/eslint-plugin': canary array-flatten: npm:@nolyfill/array-flatten@^1.0.42 is-core-module: npm:@nolyfill/is-core-module@^1.0.39 isarray: npm:@nolyfill/isarray@^1.0.29 - nextra: 3.1.0 - nextra-theme-docs: 3.1.0 safe-buffer: npm:@nolyfill/safe-buffer@^1.0.41 safer-buffer: npm:@nolyfill/safer-buffer@^1.0.41 side-channel: npm:@nolyfill/side-channel@^1.0.29 typedarray: npm:@nolyfill/typedarray@^1.0.29 + '@typescript-eslint/eslint-plugin': canary + nextra: 3.1.0 + nextra-theme-docs: 3.1.0 typescript: ^5.6.3 valibot: 0.42.1 @@ -116,8 +116,8 @@ importers: specifier: ^3.2.0 version: 3.2.0(eslint@9.15.0(jiti@2.3.3)) eslint-plugin-eslint-plugin: - specifier: ^6.3.1 - version: 6.3.1(eslint@9.15.0(jiti@2.3.3)) + specifier: ^6.3.2 + version: 6.3.2(eslint@9.15.0(jiti@2.3.3)) eslint-plugin-import-x: specifier: ^4.4.2 version: 4.4.2(eslint@9.15.0(jiti@2.3.3))(typescript@5.6.3) @@ -5047,8 +5047,8 @@ packages: peerDependencies: eslint: '>=4.19.1' - eslint-plugin-eslint-plugin@6.3.1: - resolution: {integrity: sha512-5OUvS+kzpfbX3Pyt7ULYLJBGdjM/tGPdjePGFE50Lqdqcn/dB0f9ifbRCrCGWBt10Ljk7O6ajj3BPOZ8vmD50g==} + eslint-plugin-eslint-plugin@6.3.2: + resolution: {integrity: sha512-s1uCANS+Keha58j25OvirQZsxlu3yrmWzcGuotOjUmqIeEFrDDar0cobAuYjLRLzwfjMKICKoPTCbK1pDleqiw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -12756,7 +12756,7 @@ snapshots: eslint: 9.15.0(jiti@2.3.3) ignore: 5.3.2 - eslint-plugin-eslint-plugin@6.3.1(eslint@9.15.0(jiti@2.3.3)): + eslint-plugin-eslint-plugin@6.3.2(eslint@9.15.0(jiti@2.3.3)): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@2.3.3)) eslint: 9.15.0(jiti@2.3.3)