mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-28 08:04:00 +01:00
events: correctly trigger the onDidAddListener event in emitter options (#230259)
* Correctly trigger the `onDidAddListener` event in emitter options * Add test for `Emitter.onDidAddListener`
This commit is contained in:
@@ -1155,6 +1155,7 @@ export class Emitter<T> {
|
||||
} else {
|
||||
this._listeners.push(contained);
|
||||
}
|
||||
this._options?.onDidAddListener?.(this);
|
||||
|
||||
this._size++;
|
||||
|
||||
|
||||
@@ -308,6 +308,27 @@ suite('Event', function () {
|
||||
assert.strictEqual(lastCount, 1);
|
||||
});
|
||||
|
||||
test('onDidAddListener', () => {
|
||||
let count = 0;
|
||||
const a = ds.add(new Emitter({
|
||||
onDidAddListener() { count += 1; }
|
||||
}));
|
||||
|
||||
assert.strictEqual(count, 0);
|
||||
|
||||
let subscription = ds.add(a.event(function () { }));
|
||||
assert.strictEqual(count, 1);
|
||||
|
||||
subscription.dispose();
|
||||
assert.strictEqual(count, 1);
|
||||
|
||||
subscription = ds.add(a.event(function () { }));
|
||||
assert.strictEqual(count, 2);
|
||||
|
||||
subscription.dispose();
|
||||
assert.strictEqual(count, 2);
|
||||
});
|
||||
|
||||
test('onWillRemoveListener', () => {
|
||||
let count = 0;
|
||||
const a = ds.add(new Emitter({
|
||||
|
||||
Reference in New Issue
Block a user