diff options
author | Jim Fitzpatrick <fitzpatrick.jim@gmail.com> | 2016-06-21 20:25:27 -0400 |
---|---|---|
committer | Jim Fitzpatrick <fitzpatrick.jim@gmail.com> | 2016-06-21 20:25:27 -0400 |
commit | 2cef2c28a6f74ee5c0b294d2c3c7d2bad72bd466 (patch) | |
tree | 454a99fc52a4b537e45e65a2bce8bde66d568f8c | |
parent | 5ca39214896ba58c765fcb2b1c3acf992b6e1b99 (diff) | |
download | awesomplete-2cef2c28a6f74ee5c0b294d2c3c7d2bad72bd466.zip awesomplete-2cef2c28a6f74ee5c0b294d2c3c7d2bad72bd466.tar.gz awesomplete-2cef2c28a6f74ee5c0b294d2c3c7d2bad72bd466.tar.bz2 |
Return early from close if not open
If the popup is already in a closed state, return early from
`Awesomplete.prototype.close` so as to guarantee that when
`awesomplete-close` events get triggered, the popup *was* actually
closed.
-rw-r--r-- | awesomplete.js | 4 | ||||
-rw-r--r-- | test/api/closeSpec.js | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/awesomplete.js b/awesomplete.js index 7303652..627f195 100644 --- a/awesomplete.js +++ b/awesomplete.js @@ -147,6 +147,10 @@ _.prototype = { }, close: function () { + if (!this.opened) { + return; + } + this.ul.setAttribute("hidden", ""); this.index = -1; diff --git a/test/api/closeSpec.js b/test/api/closeSpec.js index e22fe2f..65228ff 100644 --- a/test/api/closeSpec.js +++ b/test/api/closeSpec.js @@ -26,4 +26,12 @@ describe("awesomplete.close", function () { expect(handler).toHaveBeenCalled(); }); + + it("returns early if already closed", function () { + var handler = $.spyOnEvent(this.subject.input, "awesomplete-close"); + this.subject.close(); + this.subject.close(); + + expect(handler.calls.count()).toBe(1); + }); }); |