@ginden/blinkstick-v2
Version:
Improved Blickstick API for Node.js
35 lines • 1.48 kB
JavaScript
;
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