mirror of
https://github.com/Wan-Video/Wan2.1.git
synced 2025-06-08 08:14:57 +00:00
49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
var common = require('../common');
|
|
var assert = common.assert;
|
|
var fake = common.fake.create();
|
|
var DelayedStream = common.DelayedStream;
|
|
var Stream = require('stream').Stream;
|
|
|
|
(function testDelayEventsUntilResume() {
|
|
var source = new Stream();
|
|
var delayedStream = DelayedStream.create(source, {pauseStream: false});
|
|
|
|
// delayedStream must not emit until we resume
|
|
fake.expect(delayedStream, 'emit', 0);
|
|
|
|
// but our original source must emit
|
|
var params = [];
|
|
source.on('foo', function(param) {
|
|
params.push(param);
|
|
});
|
|
|
|
source.emit('foo', 1);
|
|
source.emit('foo', 2);
|
|
|
|
// Make sure delayedStream did not emit, and source did
|
|
assert.deepEqual(params, [1, 2]);
|
|
fake.verify();
|
|
|
|
// After resume, delayedStream must playback all events
|
|
fake
|
|
.stub(delayedStream, 'emit')
|
|
.times(Infinity)
|
|
.withArg(1, 'newListener');
|
|
fake.expect(delayedStream, 'emit', ['foo', 1]);
|
|
fake.expect(delayedStream, 'emit', ['foo', 2]);
|
|
fake.expect(source, 'resume');
|
|
|
|
delayedStream.resume();
|
|
fake.verify();
|
|
|
|
// Calling resume again will delegate to source
|
|
fake.expect(source, 'resume');
|
|
delayedStream.resume();
|
|
fake.verify();
|
|
|
|
// Emitting more events directly leads to them being emitted
|
|
fake.expect(delayedStream, 'emit', ['foo', 3]);
|
|
source.emit('foo', 3);
|
|
fake.verify();
|
|
})();
|