From 0e5d682b65031b94057a9212866ffa1146802e2b Mon Sep 17 00:00:00 2001 From: newagebegins Date: Tue, 19 Jun 2012 16:57:01 +1100 Subject: [PATCH] base - destroy only once --- spec/BaseSpec.js | 6 +++++- src/Base.js | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/spec/BaseSpec.js b/spec/BaseSpec.js index f9682a9..de6682f 100644 --- a/spec/BaseSpec.js +++ b/spec/BaseSpec.js @@ -39,6 +39,10 @@ describe("Base", function () { var base = new Base(eventManager); spyOn(eventManager, 'fireEvent'); base.hit(); - expect(eventManager.fireEvent).toHaveBeenCalledWith({'name': Base.Event.HIT, 'base': base}); + var EVENT = {'name': Base.Event.HIT, 'base': base}; + expect(eventManager.fireEvent).toHaveBeenCalledWith(EVENT); + eventManager.fireEvent.reset(); + base.hit(); + expect(eventManager.fireEvent).not.toHaveBeenCalledWith(EVENT); }); }); diff --git a/src/Base.js b/src/Base.js index 6daa0d9..a632ebc 100644 --- a/src/Base.js +++ b/src/Base.js @@ -38,6 +38,9 @@ Base.prototype.notify = function (event) { }; Base.prototype.hit = function () { + if (this._hit) { + return; + } this._hit = true; this._eventManager.fireEvent({'name': Base.Event.HIT, 'base': this}); };