]> git.proxmox.com Git - pve-eslint.git/blobdiff - eslint/tests/lib/rules/no-constant-condition.js
import eslint 7.18.0
[pve-eslint.git] / eslint / tests / lib / rules / no-constant-condition.js
index b83b337a65febe827d1a35238153a1bd42acecda..ecb6de534260d41e3e2e445ad3736635704a25b9 100644 (file)
@@ -16,13 +16,58 @@ const rule = require("../../../lib/rules/no-constant-condition"),
 // Tests
 //------------------------------------------------------------------------------
 
-const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
+const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 2021 } });
 
 ruleTester.run("no-constant-condition", rule, {
     valid: [
         "if(a);",
         "if(a == 0);",
         "if(a = f());",
+        "if(a += 1);",
+        "if(a |= 1);",
+        "if(a |= true);",
+        "if(a |= false);",
+        "if(a &= 1);",
+        "if(a &= true);",
+        "if(a &= false);",
+        "if(a >>= 1);",
+        "if(a >>= true);",
+        "if(a >>= false);",
+        "if(a >>>= 1);",
+        "if(a ??= 1);",
+        "if(a ??= true);",
+        "if(a ??= false);",
+        "if(a ||= b);",
+        "if(a ||= false);",
+        "if(a ||= 0);",
+        "if(a ||= void 0);",
+        "if(+(a ||= 1));",
+        "if(f(a ||= true));",
+        "if((a ||= 1) + 2);",
+        "if(1 + (a ||= true));",
+        "if(a ||= '' || false);",
+        "if(a ||= void 0 || null);",
+        "if((a ||= false) || b);",
+        "if(a || (b ||= false));",
+        "if((a ||= true) && b);",
+        "if(a && (b ||= true));",
+        "if(a &&= b);",
+        "if(a &&= true);",
+        "if(a &&= 1);",
+        "if(a &&= 'foo');",
+        "if((a &&= '') + false);",
+        "if('' + (a &&= null));",
+        "if(a &&= 1 && 2);",
+        "if((a &&= true) && b);",
+        "if(a && (b &&= true));",
+        "if((a &&= false) || b);",
+        "if(a || (b &&= false));",
+        "if(a ||= b ||= false);",
+        "if(a &&= b &&= true);",
+        "if(a ||= b &&= false);",
+        "if(a ||= b &&= true);",
+        "if(a &&= b ||= false);",
+        "if(a &&= b ||= true);",
         "if(1, a);",
         "if ('every' in []);",
         "if (`\\\n${a}`) {}",
@@ -32,6 +77,10 @@ ruleTester.run("no-constant-condition", rule, {
         "if (`foo${a}` === 'fooa');",
         "if (tag`a`);",
         "if (tag`${a}`);",
+        "if (+(a || true));",
+        "if (-(a || true));",
+        "if (~(a || 1));",
+        "if (+(a && 0) === +(b && 0));",
         "while(~!a);",
         "while(a = b);",
         "while(`${a}`);",
@@ -162,7 +211,41 @@ ruleTester.run("no-constant-condition", rule, {
         { code: "if(`foo${0 || 1}`);", errors: [{ messageId: "unexpected", type: "TemplateLiteral" }] },
         { code: "if(`foo${bar}`);", errors: [{ messageId: "unexpected", type: "TemplateLiteral" }] },
         { code: "if(`${bar}foo`);", errors: [{ messageId: "unexpected", type: "TemplateLiteral" }] },
-
+        { code: "if(!(true || a));", errors: [{ messageId: "unexpected", type: "UnaryExpression" }] },
+        { code: "if(!(a && void b && c));", errors: [{ messageId: "unexpected", type: "UnaryExpression" }] },
+        { code: "if(0 || !(a && null));", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
+        { code: "if(1 + !(a || true));", errors: [{ messageId: "unexpected", type: "BinaryExpression" }] },
+        { code: "if(!(null && a) > 1);", errors: [{ messageId: "unexpected", type: "BinaryExpression" }] },
+        { code: "if(+(!(a && 0)));", errors: [{ messageId: "unexpected", type: "UnaryExpression" }] },
+        { code: "if(!typeof a === 'string');", errors: [{ messageId: "unexpected", type: "BinaryExpression" }] },
+        { code: "if(-('foo' || a));", errors: [{ messageId: "unexpected", type: "UnaryExpression" }] },
+        { code: "if(+(void a && b) === ~(1 || c));", errors: [{ messageId: "unexpected", type: "BinaryExpression" }] },
+        { code: "if(a ||= true);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a ||= 5);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a ||= 'foo' || b);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a ||= b || /regex/);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a ||= b ||= true);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a ||= b ||= c || 1);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(!(a ||= true));", errors: [{ messageId: "unexpected", type: "UnaryExpression" }] },
+        { code: "if(!(a ||= 'foo') === true);", errors: [{ messageId: "unexpected", type: "BinaryExpression" }] },
+        { code: "if(!(a ||= 'foo') === false);", errors: [{ messageId: "unexpected", type: "BinaryExpression" }] },
+        { code: "if(a || (b ||= true));", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
+        { code: "if((a ||= 1) || b);", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
+        { code: "if((a ||= true) && true);", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
+        { code: "if(true && (a ||= true));", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
+        { code: "if(a &&= false);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a &&= null);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a &&= void b);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a &&= 0 && b);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a &&= b && '');", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a &&= b &&= false);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(a &&= b &&= c && false);", errors: [{ messageId: "unexpected", type: "AssignmentExpression" }] },
+        { code: "if(!(a &&= false));", errors: [{ messageId: "unexpected", type: "UnaryExpression" }] },
+        { code: "if(!(a &&= 0) + 1);", errors: [{ messageId: "unexpected", type: "BinaryExpression" }] },
+        { code: "if(a && (b &&= false));", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
+        { code: "if((a &&= null) && b);", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
+        { code: "if(false || (a &&= false));", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
+        { code: "if((a &&= false) || false);", errors: [{ messageId: "unexpected", type: "LogicalExpression" }] },
 
         { code: "while([]);", errors: [{ messageId: "unexpected", type: "ArrayExpression" }] },
         { code: "while(~!0);", errors: [{ messageId: "unexpected", type: "UnaryExpression" }] },