UNPKG

@ginden/blinkstick-v2

Version:
35 lines 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const limit_duration_1 = require("./limit-duration"); const simple_frame_1 = require("../frame/simple-frame"); (0, vitest_1.describe)('limitDuration', () => { async function* makeFrames() { yield new simple_frame_1.SimpleFrame([1, 1, 1], 10); yield new simple_frame_1.SimpleFrame([2, 2, 2], 20); } (0, vitest_1.it)('yields all frames unchanged if total duration <= max', async () => { const frames = []; for await (const frame of (0, limit_duration_1.limitDuration)(makeFrames(), 30)) { frames.push(frame); } (0, vitest_1.expect)(frames.map((f) => f.duration)).toEqual([10, 20]); (0, vitest_1.expect)(frames.map((f) => f.rgb)).toEqual([ [1, 1, 1], [2, 2, 2], ]); (0, vitest_1.expect)(frames.reduce((a, b) => a + b.duration, 0)).toEqual(30); }); (0, vitest_1.it)('truncates last frame if exceeding max', async () => { const frames = []; for await (const frame of (0, limit_duration_1.limitDuration)(makeFrames(), 15)) { frames.push(frame); } (0, vitest_1.expect)(frames.map((f) => f.duration)).toEqual([10, 5]); (0, vitest_1.expect)(frames.map((f) => f.rgb)).toEqual([ [1, 1, 1], [2, 2, 2], ]); }); }); //# sourceMappingURL=limit-duration.spec.js.map