-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_stream_new_apis.js
More file actions
66 lines (56 loc) · 2.24 KB
/
test_stream_new_apis.js
File metadata and controls
66 lines (56 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import stream from 'node:stream';
console.log('=== Testing New Stream APIs ===\n');
// Test 1: duplexPair()
console.log('1. Testing duplexPair()...');
try {
const [sideA, sideB] = stream.duplexPair();
console.log(' ✓ duplexPair created');
sideA.on('data', (chunk) => {
console.log(' ✓ Side A received:', chunk.toString());
});
sideB.write('Hello from B');
console.log(' ✓ Data written to side B');
} catch (e) {
console.log(' ✗ Error:', e.message);
}
// Test 2: Additional properties
console.log('\n2. Testing additional properties...');
try {
const readable = new stream.Readable();
console.log(' - readableAborted:', readable.readableAborted);
console.log(' - readableDidRead:', readable.readableDidRead);
console.log(' ✓ Readable properties accessible');
const writable = new stream.Writable();
console.log(' - writableAborted:', writable.writableAborted);
console.log(' ✓ Writable properties accessible');
} catch (e) {
console.log(' ✗ Error:', e.message);
}
// Test 3: readable.compose()
console.log('\n3. Testing readable.compose()...');
try {
const readable = stream.Readable.from([1, 2, 3]);
const transform = new stream.Transform({
transform(chunk, encoding, callback) {
callback(null, chunk * 2);
}
});
const composed = readable.compose(transform);
console.log(' ✓ Composed stream created');
console.log(' - Has readable property:', typeof composed.readable);
console.log(' - Has writable property:', typeof composed.writable);
} catch (e) {
console.log(' ✗ Error:', e.message);
}
// Test 4: readable.iterator()
console.log('\n4. Testing readable.iterator()...');
try {
const readable = stream.Readable.from(['a', 'b', 'c']);
const iterator = readable.iterator({ destroyOnReturn: false });
console.log(' ✓ Iterator created');
console.log(' - Has next method:', typeof iterator.next === 'function');
console.log(' - Has return method:', typeof iterator.return === 'function');
} catch (e) {
console.log(' ✗ Error:', e.message);
}
console.log('\n=== New Stream APIs Tests Complete ===');