summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Fitzpatrick <fitzpatrick.jim@gmail.com>2016-06-21 20:25:27 -0400
committerJim Fitzpatrick <fitzpatrick.jim@gmail.com>2016-06-21 20:25:27 -0400
commit2cef2c28a6f74ee5c0b294d2c3c7d2bad72bd466 (patch)
tree454a99fc52a4b537e45e65a2bce8bde66d568f8c
parent5ca39214896ba58c765fcb2b1c3acf992b6e1b99 (diff)
downloadawesomplete-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.js4
-rw-r--r--test/api/closeSpec.js8
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);
+ });
});