From 1ec1e8550ed382250eab0d34a683cf8f944c3f14 Mon Sep 17 00:00:00 2001 From: f111fei Date: Wed, 13 Jul 2016 18:38:45 +0800 Subject: [PATCH] add debounceEvent testcase --- src/vs/base/test/common/event.test.ts | 29 ++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/vs/base/test/common/event.test.ts b/src/vs/base/test/common/event.test.ts index 24c23e3b85c..7b0e154c34b 100644 --- a/src/vs/base/test/common/event.test.ts +++ b/src/vs/base/test/common/event.test.ts @@ -5,7 +5,7 @@ 'use strict'; import * as assert from 'assert'; -import Event, {Emitter, fromEventEmitter, EventBufferer} from 'vs/base/common/event'; +import Event, {Emitter, fromEventEmitter, debounceEvent, EventBufferer} from 'vs/base/common/event'; import {IDisposable} from 'vs/base/common/lifecycle'; import {EventEmitter} from 'vs/base/common/eventEmitter'; import Errors = require('vs/base/common/errors'); @@ -177,6 +177,33 @@ suite('Event',function(){ Errors.setUnexpectedErrorHandler(origErrorHandler); } }); + + test('Debounce Event', function () { + let doc = new Samples.Document3(); + + let onDocDidChange = debounceEvent(doc.onDidChange, (prev: string[], cur) => { + if (!prev) { + prev = [cur]; + } else if (prev.indexOf(cur) < 0) { + prev.push(cur); + } + return prev; + }, 10); + + onDocDidChange(keys => { + assert.ok(keys, 'was not expecting keys.'); + if (keys.length === 3) { + doc.setText('4'); + assert.deepEqual(keys, ['1', '2', '3']); + } else { + assert.deepEqual(keys, ['4']); + } + }); + + doc.setText('1'); + doc.setText('2'); + doc.setText('3'); + }); }); suite('EventBufferer', () => { -- GitLab