]> git.proxmox.com Git - pve-eslint.git/blobdiff - eslint/tests/lib/rules/no-self-assign.js
import 8.3.0 source
[pve-eslint.git] / eslint / tests / lib / rules / no-self-assign.js
index 5a9bb6fcfed6926690f70afcf6e69b526119be27..04aa2dee4023d090152bb43eb8853309009b0c18 100644 (file)
@@ -79,6 +79,14 @@ ruleTester.run("no-self-assign", rule, {
         {
             code: "this.x = this.x",
             options: [{ props: false }]
+        },
+        {
+            code: "class C { #field; foo() { this['#field'] = this.#field; } }",
+            parserOptions: { ecmaVersion: 2022 }
+        },
+        {
+            code: "class C { #field; foo() { this.#field = this['#field']; } }",
+            parserOptions: { ecmaVersion: 2022 }
         }
     ],
     invalid: [
@@ -147,6 +155,18 @@ ruleTester.run("no-self-assign", rule, {
             code: "a.b = a?.b",
             parserOptions: { ecmaVersion: 2020 },
             errors: [{ messageId: "selfAssignment", data: { name: "a?.b" } }]
+        },
+
+        // Private members
+        {
+            code: "class C { #field; foo() { this.#field = this.#field; } }",
+            parserOptions: { ecmaVersion: 2022 },
+            errors: [{ messageId: "selfAssignment", data: { name: "this.#field" } }]
+        },
+        {
+            code: "class C { #field; foo() { [this.#field] = [this.#field]; } }",
+            parserOptions: { ecmaVersion: 2022 },
+            errors: [{ messageId: "selfAssignment", data: { name: "this.#field" } }]
         }
     ]
 });