From 4d9f77f7bf41e13d2c2c55a6adbeb14dbcd5750a Mon Sep 17 00:00:00 2001 From: Greg Shikhman Date: Tue, 21 Oct 2025 00:47:58 +0000 Subject: [PATCH] test: add readWasmBinaryFromDisk unit test --- .../core/src/utils/__fixtures__/dummy.wasm | 1 + packages/core/src/utils/fileUtils.test.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 packages/core/src/utils/__fixtures__/dummy.wasm diff --git a/packages/core/src/utils/__fixtures__/dummy.wasm b/packages/core/src/utils/__fixtures__/dummy.wasm new file mode 100644 index 00000000000..e05f8614d9a --- /dev/null +++ b/packages/core/src/utils/__fixtures__/dummy.wasm @@ -0,0 +1 @@ +This is a wasm fixture. diff --git a/packages/core/src/utils/fileUtils.test.ts b/packages/core/src/utils/fileUtils.test.ts index 2fd4174ab0d..49117528f51 100644 --- a/packages/core/src/utils/fileUtils.test.ts +++ b/packages/core/src/utils/fileUtils.test.ts @@ -19,6 +19,7 @@ import fs from 'node:fs'; import fsPromises from 'node:fs/promises'; import path from 'node:path'; import os from 'node:os'; +import { fileURLToPath } from 'node:url'; // eslint-disable-next-line import/no-internal-modules import mime from 'mime/lite'; @@ -30,6 +31,7 @@ import { detectBOM, readFileWithEncoding, fileExists, + readWasmBinaryFromDisk, } from './fileUtils.js'; import { StandardFileSystemService } from '../services/fileSystemService.js'; @@ -77,6 +79,23 @@ describe('fileUtils', () => { vi.restoreAllMocks(); // Restore any spies }); + describe('readWasmBinaryFromDisk', () => { + it('loads a WASM binary from disk as a Uint8Array', async () => { + const wasmFixtureUrl = new URL( + './__fixtures__/dummy.wasm', + import.meta.url, + ); + const wasmFixturePath = fileURLToPath(wasmFixtureUrl); + const result = await readWasmBinaryFromDisk(wasmFixturePath); + const expectedBytes = new Uint8Array( + await fsPromises.readFile(wasmFixturePath), + ); + + expect(result).toBeInstanceOf(Uint8Array); + expect(result).toStrictEqual(expectedBytes); + }); + }); + describe('isWithinRoot', () => { const root = path.resolve('/project/root');