import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { channel } from 'moroutine'; import { generate, double, square } from './fixtures/stream-pipeline.ts'; describe('streaming pipeline', () => { it('chains two streaming moroutines', async () => { const results: number[] = []; for await (const value of double(channel(generate(3)))) { results.push(value); } assert.deepEqual(results, [2, 4, 6]); }); it('chains three streaming moroutines', async () => { const results: number[] = []; const doubled = double(channel(generate(3))); const squared = square(channel(doubled)); for await (const value of squared) { results.push(value); } assert.deepEqual(results, [4, 16, 36]); }); });