summaryrefslogtreecommitdiff
path: root/Libraries/LibJS/Tests/operators/logical-and.js
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries/LibJS/Tests/operators/logical-and.js')
-rw-r--r--Libraries/LibJS/Tests/operators/logical-and.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/Libraries/LibJS/Tests/operators/logical-and.js b/Libraries/LibJS/Tests/operators/logical-and.js
new file mode 100644
index 0000000000..2ddbe1feea
--- /dev/null
+++ b/Libraries/LibJS/Tests/operators/logical-and.js
@@ -0,0 +1,50 @@
+test("booleans", () => {
+ expect(true && true).toBeTrue();
+ expect(false && false).toBeFalse();
+ expect(true && false).toBeFalse();
+ expect(false && true).toBeFalse();
+});
+
+test("strings", () => {
+ expect("" && "").toBe("");
+ expect("" && false).toBe("");
+ expect("" && true).toBe("");
+ expect(false && "").toBeFalse();
+ expect(true && "").toBe("");
+ expect("foo" && "bar").toBe("bar");
+ expect("foo" && false).toBeFalse();
+ expect("foo" && true).toBeTrue();
+ expect(false && "bar").toBeFalse();
+ expect(true && "bar").toBe("bar");
+});
+
+test("numbers", () => {
+ expect(false && 1 === 2).toBeFalse();
+ expect(true && 1 === 2).toBeFalse();
+ expect(0 && false).toBe(0);
+ expect(0 && true).toBe(0);
+ expect(42 && false).toBeFalse();
+ expect(42 && true).toBeTrue();
+ expect(false && 0).toBeFalse();
+ expect(true && 0).toBe(0);
+ expect(false && 42).toBeFalse();
+ expect(true && 42).toBe(42);
+});
+
+test("objects", () => {
+ expect([] && false).toBeFalse();
+ expect([] && true).toBeTrue();
+ expect(false && []).toBeFalse();
+ expect(true && []).toHaveLength(0);
+});
+
+test("null & undefined", () => {
+ expect(null && false).toBeNull();
+ expect(null && true).toBeNull();
+ expect(false && null).toBeFalse();
+ expect(true && null).toBeNull();
+ expect(undefined && false).toBeUndefined();
+ expect(undefined && true).toBeUndefined();
+ expect(false && undefined).toBeFalse();
+ expect(true && undefined).toBeUndefined();
+});