From 63daf2c989c010fb82973077cf42adfc0633e459 Mon Sep 17 00:00:00 2001 From: Leopoldthecoder Date: Fri, 21 Oct 2016 11:22:35 +0800 Subject: [PATCH] Message: add test --- packages/message/src/main.vue | 2 +- test/unit/specs/message.spec.js | 78 +++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 test/unit/specs/message.spec.js diff --git a/packages/message/src/main.vue b/packages/message/src/main.vue index a888a03d7..abbda4de1 100644 --- a/packages/message/src/main.vue +++ b/packages/message/src/main.vue @@ -47,7 +47,7 @@ handleClose() { this.closed = true; if (typeof this.onClose === 'function') { - this.onClose(); + this.onClose(this); } }, diff --git a/test/unit/specs/message.spec.js b/test/unit/specs/message.spec.js new file mode 100644 index 000000000..782eb15ac --- /dev/null +++ b/test/unit/specs/message.spec.js @@ -0,0 +1,78 @@ +import { createVue, triggerEvent } from '../util'; + +describe('Message', () => { + it('automatically close', done => { + const vm = createVue({ + template: ` +
+ ` + }, true); + vm.$message({ + message: '灰风', + duration: 500 + }); + expect(document.querySelector('.el-message')).to.exist; + setTimeout(() => { + expect(document.querySelector('.el-message')).to.not.exist; + done(); + }, 1000); + }); + + it('manually close', done => { + const vm = createVue({ + template: ` +
+ ` + }, true); + vm.$message({ + message: '夏天', + showClose: true + }); + setTimeout(() => { + document.querySelector('.el-message__closeBtn').click(); + setTimeout(() => { + expect(document.querySelector('.el-message')).to.not.exist; + done(); + }, 500); + }, 500); + }); + + it('create', () => { + const vm = createVue({ + template: ` +
+ ` + }, true); + vm.$message('娜梅莉亚'); + expect(document.querySelector('.el-message')).to.exist; + }); + + it('invoke with type', () => { + const vm = createVue({ + template: ` +
+ ` + }, true); + vm.$message.success('毛毛狗'); + expect(document.querySelector('.el-message')).to.exist; + }); + + it('reset timer', done => { + const vm = createVue({ + template: ` +
+ ` + }, true); + vm.$message({ + message: '白灵', + duration: 1000 + }); + setTimeout(() => { + triggerEvent(document.querySelector('.el-message'), 'mouseenter'); + setTimeout(() => { + expect(document.querySelector('.el-message')).to.exist; + done(); + }, 700); + }, 500); + }); +});