ArrayBuffer.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. test("basic functionality", () => {
  2. expect(ArrayBuffer).toHaveLength(1);
  3. expect(ArrayBuffer.name).toBe("ArrayBuffer");
  4. expect(ArrayBuffer.prototype.constructor).toBe(ArrayBuffer);
  5. expect(new ArrayBuffer()).toBeInstanceOf(ArrayBuffer);
  6. expect(typeof new ArrayBuffer()).toBe("object");
  7. });
  8. test("ArrayBuffer constructor must be invoked with 'new'", () => {
  9. expect(() => {
  10. ArrayBuffer();
  11. }).toThrowWithMessage(TypeError, "ArrayBuffer constructor must be called with 'new'");
  12. });
  13. test("ArrayBuffer size limit", () => {
  14. expect(() => {
  15. new ArrayBuffer(2 ** 53);
  16. }).toThrowWithMessage(RangeError, "Invalid array buffer length");
  17. });
  18. test("invalid ArrayBuffer maximum size option", () => {
  19. expect(() => {
  20. new ArrayBuffer(10, { maxByteLength: -1 });
  21. }).toThrowWithMessage(RangeError, "Index must be a positive integer");
  22. });
  23. test("ArrayBuffer size exceeds maximum size", () => {
  24. expect(() => {
  25. new ArrayBuffer(10, { maxByteLength: 5 });
  26. }).toThrowWithMessage(
  27. RangeError,
  28. "ArrayBuffer byte length of 10 exceeds the max byte length of 5"
  29. );
  30. });