1import assert from 'node:assert/strict';2import test from 'node:test';34import { buildVideoDecoderConfig } from './video-decoder-config.mjs';56test('requests the standardized WebCodecs low-latency decoder mode', () => {7 const description = new Uint8Array([1, 100, 0, 31]);8 const config = buildVideoDecoderConfig({9 codec: 'avc1.64001f',10 width: 1280,11 height: 800,12 description,13 });1415 assert.deepEqual(config, {16 codec: 'avc1.64001f',17 codedWidth: 1280,18 codedHeight: 800,19 description,20 optimizeForLatency: true,21 });22 assert.equal(config.description, description);23 assert.equal(Object.hasOwn(config, 'optimizeForRealtimeUse'), false);24});2526test('decoder config rejects invalid codecs, dimensions, and descriptions', () => {27 const valid = {28 codec: 'avc1.64001f',29 width: 1280,30 height: 800,31 description: new Uint8Array([1]),32 };3334 assert.throws(() => buildVideoDecoderConfig({ ...valid, codec: ' ' }), TypeError);35 assert.throws(() => buildVideoDecoderConfig({ ...valid, width: 0 }), RangeError);36 assert.throws(() => buildVideoDecoderConfig({ ...valid, width: 8192, height: 8192 }), RangeError);37 assert.throws(() => buildVideoDecoderConfig({ ...valid, description: [1] }), TypeError);38});