()
| 327 | // ============================================================================= |
| 328 | |
| 329 | function testOptionsValidationAsync() { |
| 330 | async function* gen() { yield [Buffer.from('x')]; } |
| 331 | |
| 332 | // Options must be an object |
| 333 | assert.throws(() => toReadable(gen(), 'bad'), |
| 334 | { code: 'ERR_INVALID_ARG_TYPE' }); |
| 335 | assert.throws(() => toReadable(gen(), 42), |
| 336 | { code: 'ERR_INVALID_ARG_TYPE' }); |
| 337 | |
| 338 | // highWaterMark must be a non-negative integer |
| 339 | assert.throws(() => toReadable(gen(), { highWaterMark: -1 }), |
| 340 | { code: 'ERR_OUT_OF_RANGE' }); |
| 341 | assert.throws(() => toReadable(gen(), { highWaterMark: 'big' }), |
| 342 | { code: 'ERR_INVALID_ARG_TYPE' }); |
| 343 | assert.throws(() => toReadable(gen(), { highWaterMark: 1.5 }), |
| 344 | { code: 'ERR_OUT_OF_RANGE' }); |
| 345 | |
| 346 | // Signal must be an AbortSignal |
| 347 | assert.throws(() => toReadable(gen(), { signal: 'not a signal' }), |
| 348 | { code: 'ERR_INVALID_ARG_TYPE' }); |
| 349 | assert.throws(() => toReadable(gen(), { signal: 42 }), |
| 350 | { code: 'ERR_INVALID_ARG_TYPE' }); |
| 351 | |
| 352 | // Valid options should work |
| 353 | const r = toReadable(gen(), { highWaterMark: 0 }); |
| 354 | assert.strictEqual(r.readableHighWaterMark, 0); |
| 355 | r.destroy(); |
| 356 | |
| 357 | // Default highWaterMark should be 16KB |
| 358 | const r2 = toReadable(gen()); |
| 359 | assert.strictEqual(r2.readableHighWaterMark, 64 * 1024); |
| 360 | r2.destroy(); |
| 361 | |
| 362 | // Explicit undefined options should work (uses defaults) |
| 363 | const r3 = toReadable(gen(), undefined); |
| 364 | assert.strictEqual(r3.readableHighWaterMark, 64 * 1024); |
| 365 | r3.destroy(); |
| 366 | } |
| 367 | |
| 368 | // ============================================================================= |
| 369 | // fromStreamIter: with stream/iter transform |
no test coverage detected