Files
ladybird/Tests/LibJS/Runtime/builtins/Boolean/Boolean.js
2026-01-22 07:46:48 -05:00

50 lines
1.4 KiB
JavaScript

test("constructor properties", () => {
expect(Boolean).toHaveLength(1);
expect(Boolean.name).toBe("Boolean");
});
test("typeof", () => {
expect(typeof new Boolean()).toBe("object");
expect(typeof Boolean()).toBe("boolean");
expect(typeof Boolean(true)).toBe("boolean");
});
test("basic functionality", () => {
var foo = new Boolean(true);
var bar = new Boolean(true);
expect(foo).not.toBe(bar);
expect(foo.valueOf()).toBe(bar.valueOf());
expect(Boolean()).toBeFalse();
expect(Boolean(false)).toBeFalse();
expect(Boolean(null)).toBeFalse();
expect(Boolean(undefined)).toBeFalse();
expect(Boolean(NaN)).toBeFalse();
expect(Boolean("")).toBeFalse();
expect(Boolean(0.0)).toBeFalse();
expect(Boolean(-0.0)).toBeFalse();
expect(Boolean(true)).toBeTrue();
expect(Boolean("0")).toBeTrue();
expect(Boolean({})).toBeTrue();
expect(Boolean([])).toBeTrue();
expect(Boolean(1)).toBeTrue();
});
test("double negate", () => {
expect(!true).toBeFalse();
expect(!!true).toBeTrue();
expect(!false).toBeTrue();
expect(!!false).toBeFalse();
expect(!!null).toBeFalse();
expect(!!undefined).toBeFalse();
expect(!!NaN).toBeFalse();
expect(!!"").toBeFalse();
expect(!!0.0).toBeFalse();
expect(!!-0.0).toBeFalse();
expect(!!"0").toBeTrue();
expect(!!{}).toBeTrue();
expect(!![]).toBeTrue();
expect(!!1).toBeTrue();
});