2020-07-04 18:56:48 +01:00
|
|
|
test("length is 1", () => {
|
|
|
|
|
expect(Array.isArray).toHaveLength(1);
|
|
|
|
|
});
|
2020-05-08 16:28:35 +01:00
|
|
|
|
2020-07-04 18:56:48 +01:00
|
|
|
test("arguments that evaluate to false", () => {
|
|
|
|
|
expect(Array.isArray()).toBeFalse();
|
|
|
|
|
expect(Array.isArray("1")).toBeFalse();
|
|
|
|
|
expect(Array.isArray("foo")).toBeFalse();
|
|
|
|
|
expect(Array.isArray(1)).toBeFalse();
|
|
|
|
|
expect(Array.isArray(1, 2, 3)).toBeFalse();
|
|
|
|
|
expect(Array.isArray(undefined)).toBeFalse();
|
|
|
|
|
expect(Array.isArray(null)).toBeFalse();
|
|
|
|
|
expect(Array.isArray(Infinity)).toBeFalse();
|
|
|
|
|
expect(Array.isArray({})).toBeFalse();
|
|
|
|
|
});
|
2020-05-08 16:28:35 +01:00
|
|
|
|
2020-07-04 18:56:48 +01:00
|
|
|
test("arguments that evaluate to true", () => {
|
|
|
|
|
expect(Array.isArray([])).toBeTrue();
|
|
|
|
|
expect(Array.isArray([1])).toBeTrue();
|
|
|
|
|
expect(Array.isArray([1, 2, 3])).toBeTrue();
|
|
|
|
|
expect(Array.isArray(new Array())).toBeTrue();
|
|
|
|
|
expect(Array.isArray(new Array(10))).toBeTrue();
|
|
|
|
|
expect(Array.isArray(new Array("a", "b", "c"))).toBeTrue();
|
2021-02-24 09:48:29 +01:00
|
|
|
expect(Array.isArray(Array.prototype)).toBeTrue();
|
2021-06-08 21:53:36 +01:00
|
|
|
expect(Array.isArray(new Proxy([], {}))).toBeTrue();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test("Revoked Proxy as argument throws", () => {
|
|
|
|
|
const revocable = Proxy.revocable([], {});
|
|
|
|
|
revocable.revoke();
|
|
|
|
|
expect(() => {
|
|
|
|
|
Array.isArray(revocable.proxy);
|
|
|
|
|
}).toThrowWithMessage(TypeError, "An operation was performed on a revoked Proxy object");
|
2020-07-04 18:56:48 +01:00
|
|
|
});
|