| 87 | } |
| 88 | |
| 89 | async function testPerChannelOptions() { |
| 90 | const [channelA, channelB] = duplex({ |
| 91 | a: { highWaterMark: 1 }, |
| 92 | b: { highWaterMark: 4 }, |
| 93 | }); |
| 94 | |
| 95 | // Channel A -> B direction uses A's options |
| 96 | // Channel B -> A direction uses B's options |
| 97 | await channelA.writer.write('from-a'); |
| 98 | await channelA.close(); |
| 99 | |
| 100 | await channelB.writer.write('from-b'); |
| 101 | await channelB.close(); |
| 102 | |
| 103 | const [dataAtA, dataAtB] = await Promise.all([ |
| 104 | text(channelA.readable), |
| 105 | text(channelB.readable), |
| 106 | ]); |
| 107 | |
| 108 | assert.strictEqual(dataAtB, 'from-a'); |
| 109 | assert.strictEqual(dataAtA, 'from-b'); |
| 110 | } |
| 111 | |
| 112 | async function testAbortSignal() { |
| 113 | const ac = new AbortController(); |