ソースを参照

Dropdown: click open uses `show-timeout` attribute (#8734)

* Dropdown: Click open uses `show-timeout` attribute

* Dropdown: Modified test to work with `show-timeout` attribute

* Dropdown: Clean up in testfix
Johan Hernefeldt 7 年 前
コミット
8ae2defa2d
2 ファイル変更7 行追加4 行削除
  1. 5 1
      packages/dropdown/src/dropdown.vue
  2. 2 3
      test/unit/specs/dropdown.spec.js

+ 5 - 1
packages/dropdown/src/dropdown.vue

@@ -128,7 +128,11 @@
       },
       handleClick() {
         if (this.triggerElm.disabled) return;
-        this.visible = !this.visible;
+        if (this.visible) {
+          this.hide();
+        } else {
+          this.show();
+        }
       },
       handleTriggerKeyDown(ev) {
         const keyCode = ev.keyCode;

+ 2 - 3
test/unit/specs/dropdown.spec.js

@@ -102,12 +102,11 @@ describe('Dropdown', () => {
     triggerEvent(triggerElm, 'mouseenter');
     dropdown.$nextTick(_ => {
       expect(dropdown.visible).to.not.true;
-
       triggerElm.click();
-      dropdown.$nextTick(_ => {
+      setTimeout(_ => {
         expect(dropdown.visible).to.be.true;
         done();
-      });
+      }, 300);
     });
   });
   it('split button', done => {