Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/vs/base/test/common/event.test.ts')
-rw-r--r--src/vs/base/test/common/event.test.ts30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/vs/base/test/common/event.test.ts b/src/vs/base/test/common/event.test.ts
index a34566c10f1..39d878bce5d 100644
--- a/src/vs/base/test/common/event.test.ts
+++ b/src/vs/base/test/common/event.test.ts
@@ -8,7 +8,8 @@ import { CancellationToken } from 'vs/base/common/cancellation';
import { errorHandler, setUnexpectedErrorHandler } from 'vs/base/common/errors';
import { AsyncEmitter, DebounceEmitter, Emitter, Event, EventBufferer, EventMultiplexer, IWaitUntil, MicrotaskEmitter, PauseableEmitter, Relay } from 'vs/base/common/event';
import { DisposableStore, IDisposable, isDisposable, setDisposableTracker, toDisposable } from 'vs/base/common/lifecycle';
-import { DisposableTracker } from 'vs/base/test/common/utils';
+import { observableValue, transaction } from 'vs/base/common/observable';
+import { DisposableTracker, ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
namespace Samples {
@@ -624,6 +625,33 @@ suite('PausableEmitter', function () {
});
});
+suite('Event utils - ensureNoDisposablesAreLeakedInTestSuite', function () {
+ ensureNoDisposablesAreLeakedInTestSuite();
+
+ test('fromObservable', function () {
+
+ const obs = observableValue('test', 12);
+ const event = Event.fromObservable(obs);
+
+ const values: number[] = [];
+ const d = event(n => { values.push(n); });
+
+ obs.set(3, undefined);
+ obs.set(13, undefined);
+ obs.set(3, undefined);
+ obs.set(33, undefined);
+ obs.set(1, undefined);
+
+ transaction(tx => {
+ obs.set(334, tx);
+ obs.set(99, tx);
+ });
+
+ assert.deepStrictEqual(values, ([3, 13, 3, 33, 1, 99]));
+ d.dispose();
+ });
+});
+
suite('Event utils', () => {
suite('EventBufferer', () => {