Files
av-tools/tests/unit/ffmpeg-mode.test.ts

39 lines
1.1 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
describeEngineMode,
selectEngineMode,
supportsMultithread,
} from '../../src/ffmpeg/engine-mode';
import type { EngineEnvironment } from '../../src/ffmpeg/ffmpeg.types';
const isolated: EngineEnvironment = {
secureContext: true,
crossOriginIsolated: true,
sharedArrayBuffer: true,
hardwareConcurrency: 8,
};
describe('engine mode selection', () => {
it('selects multithread only when every required capability is present', () => {
expect(supportsMultithread(isolated)).toBe(true);
expect(selectEngineMode(isolated, 'automatic')).toBe('multithread');
for (const missing of [
'secureContext',
'crossOriginIsolated',
'sharedArrayBuffer',
] as const) {
expect(
selectEngineMode({ ...isolated, [missing]: false }, 'automatic')
).toBe('single-thread');
}
});
it('honours the safe single-thread preference', () => {
expect(selectEngineMode(isolated, 'force-single-thread')).toBe(
'single-thread'
);
expect(describeEngineMode('single-thread')).toMatch(/compatibility/);
});
});