Ejemplo n.º 1
0
Archivo: util.ts Proyecto: tajary/core
				const dfd = this.async(1000);
				const spy = sinon.spy();
				timer = util.createTimer(spy, 100);

				setTimeout(dfd.callback(function () {
					assert.strictEqual(spy.callCount, 1);
				}), 110);
			}
		};
	})(),

	debounce: {
		'debounces callback'() {
			const dfd = this.async(1000);
			const spy = sinon.spy();
			const debouncedFunction = util.debounce(spy, 100);

			debouncedFunction();
			assert.strictEqual(spy.callCount, 0,
				'Function should not be called until period has elapsed without further calls');

			setTimeout(function () {
				debouncedFunction();
			}, 80);

			setTimeout(function () {
				debouncedFunction();
			}, 160);

			setTimeout(dfd.callback(function () {
				assert.strictEqual(spy.callCount, 1,
Ejemplo n.º 2
0
				timer = util.createTimer(spy, 100);

				setTimeout(dfd.callback(function () {
					assert.strictEqual(spy.callCount, 1);
				}), 110);
			}
		};
	})(),

	debounce: {
		'preserves context'(this: any) {
			const dfd = this.async(TIMEOUT);
			// FIXME
			var foo = {
				bar: util.debounce(dfd.callback(function(this: any) {
					assert.strictEqual(this, foo, 'Function should be executed with correct context');
				}), 0)
			};

			foo.bar();
		},

		'receives arguments'(this: any) {
			const dfd = this.async(TIMEOUT);
			const testArg1 = 5;
			const testArg2 = 'a';
			const debouncedFunction = util.debounce(dfd.callback(function (a: number, b: string) {
				assert.strictEqual(a, testArg1, 'Function should receive correct arguments');
				assert.strictEqual(b, testArg2, 'Function should receive correct arguments');
			}), 0);