ladybird/Userland/Libraries/LibJS/Tests/operators/logical-and.js
2021-01-12 12:17:46 +01:00

50 lines
1.5 KiB
JavaScript

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();
});