Testing Utilities

Test helpers for kernel development including worker creation, filesystem seeding, and geometry validation.

Testing Utilities

Use the testing API when writing unit tests for custom kernels, middleware, or kernel integration. All utilities require Vitest as a peer dependency.

Types

Prop

Type

Worker and Filesystem Utilities

FunctionDescription
createTestWorkerCreate and initialize a KernelRuntimeWorker with kernel definition and seeded files
initializeWorkerForTestingInitialize an existing worker with MessageChannel-based filesystem bridge
seedTestFileSystemSeed the in-memory filesystem with files; resets to clean state first
clearTestFileSystemReset the in-memory filesystem to empty

Mock Utilities

FunctionDescription
createMockLoggerCreate a mock logger with vitest spy methods
createMockFileSystemCreate a mock filesystem with configurable return values
createMockRuntimeCreate a mock KernelMiddlewareRuntime with stubbed services
createMockRuntimeClientCreate a mock RuntimeClient for transport-level testing
createMockDependenciesCreate mock Dependency[] arrays for dependency hash testing
createMockCreateGeometryHandlerCreate a mock handler for wrapCreateGeometry middleware tests
createMockGetParametersHandlerCreate a mock handler for wrapGetParameters middleware tests
createMockResponseCreate a mock Response for HTTP-dependent kernel tests
createSuccessResultCreate a successful CreateGeometryResult for middleware tests
createErrorResultCreate a failed CreateGeometryResult for middleware tests
createMockInputCreate mock CreateGeometryInput for middleware tests
MockKernelWorkerMock worker class for unit testing middleware integration

Geometry Validation

FunctionDescription
validateGlbDataAssert GLB data has valid header and non-zero length
getInspectReportGet gltf-transform inspect report from GLB data
getGeometryStatsFromInspectExtract vertexCount, faceCount, meshCount from report
getBoundingBoxFromInspectExtract bounding box size and center from report
extractGltfFromResultExtract GLB/GLTF blob from CreateGeometryResult
createGeometryVariantCreate a geometry variant for parametric test assertions
createGeometryTestHelpersCreate helpers combining validation and expectation checking

Usage

import { describe, it, expect } from 'vitest';
import { createTestWorker, clearTestFileSystem, extractGltfFromResult, validateGlbData } from '@taucad/runtime/testing';
import replicadDefinition from '@taucad/runtime/kernels/replicad';

describe('kernel test', () => {
  it('renders geometry', async () => {
    const worker = await createTestWorker(replicadDefinition, {
      '/projects/test/main.ts': 'export default () => null',
    });
    const result = await worker.createGeometry({
      file: { filename: 'main.ts', path: '/projects/test' },
      parameters: {},
    });
    expect(result.success).toBe(true);
    const glb = extractGltfFromResult(result);
    if (glb) validateGlbData(glb);
    await clearTestFileSystem();
  });
});