From d923f29e5ab585d8514a53a1cf73970e9f5ddaa6 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 11 Aug 2026 13:22:02 +0900 Subject: [PATCH] test(reliability): define Blob size preflight RED --- src/converter/blobSizePreflight.test.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/converter/blobSizePreflight.test.ts diff --git a/src/converter/blobSizePreflight.test.ts b/src/converter/blobSizePreflight.test.ts new file mode 100644 index 00000000..4c673d56 --- /dev/null +++ b/src/converter/blobSizePreflight.test.ts @@ -0,0 +1,21 @@ +import { describe, expect, it, vi } from 'vitest'; + +import { Base64SizeError, blobToDataUri } from './index.js'; + +describe('Blob conversion resource preflight', () => { + it('rejects a known oversized Blob before reading its payload bytes', async () => { + const blob = new Blob([new Uint8Array(32)], { type: 'application/octet-stream' }); + const read = vi.fn(async () => new Uint8Array(32).buffer); + Object.defineProperty(blob, 'arrayBuffer', { + configurable: true, + value: read, + }); + + await expect(blobToDataUri(blob, { maxBytes: 4 })).rejects.toMatchObject({ + name: 'Base64SizeError', + bytes: 32, + maxBytes: 4, + } satisfies Partial); + expect(read).not.toHaveBeenCalled(); + }); +});