UNPKG

eventemitter3-timer

Version:

`EventEmitter3-Timer` is a plugin extend [EventEmitter3](https://github.com/primus/eventemitter3) to create time events easily.

66 lines (55 loc) 2.27 kB
import { Timer, TimerManager } from "../dist/eventemitter3-timer"; import { expect } from "chai"; describe("TimerManager", () => { const manager: TimerManager = new TimerManager(); context("#TimerManager Methods", () => { const timers: Timer[] = []; it("TimerManager is initialized", () => { expect(manager.timers.length).to.equal(0); }); it("Create timers from manager", () => { timers.push(manager.createTimer(500)); expect(manager.timers.length).to.equal(1); }); it("TimerManager.update increment timers", () => { timers.push(manager.createTimer(1000)); timers.forEach(timer => timer.start()); manager.update(500); expect(timers[0].isEnded).to.equal(true); expect(timers[1].isEnded).to.equal(false); }); it("TimerManager.update don't affect not managed timers", () => { timers.push(new Timer(500)); // this timer is under global timerManager timers.forEach(timer => { timer.reset(); timer.start(); }); manager.update(500); expect(timers[0].isEnded).to.equal(true); expect(timers[1].isEnded).to.equal(false); expect(timers[2].isEnded).to.equal(false); }); it("Add timers to this manager", () => { manager.addTimer(timers[2]); timers.forEach(timer => { timer.reset(); timer.start(); }); manager.update(500); expect(timers[0].isEnded).to.equal(true); expect(timers[1].isEnded).to.equal(false); expect(timers[2].isEnded).to.equal(true); }); it("Remove timers to this manager", () => { manager.removeTimer(timers[0]); timers.forEach(timer => { timer.reset(); timer.start(); }); manager.update(500); expect(timers[0].isEnded).to.equal(false); expect(timers[1].isEnded).to.equal(false); expect(timers[2].isEnded).to.equal(true); }); }); });