diff --git a/src/dialog/Dialog.js b/src/dialog/Dialog.js index 490822474..323697bbf 100644 --- a/src/dialog/Dialog.js +++ b/src/dialog/Dialog.js @@ -78,16 +78,17 @@ export default createComponent({ return; } - const { title, message, messageAlign } = this; - const children = this.slots(); + const { message, messageAlign } = this; + const messageSlot = this.slots(); + const title = this.slots('title') || this.title; const Title = title && ( -
{title}
+
{title}
); - const Content = (children || message) && ( + const Content = (messageSlot || message) && (
- {children || ( + {messageSlot || ( `; + +exports[`default slot 1`] = ` + +`; + +exports[`title slot 1`] = ` + +`; diff --git a/src/dialog/test/index.spec.js b/src/dialog/test/index.spec.js index 8ad8d3a7a..509294545 100644 --- a/src/dialog/test/index.spec.js +++ b/src/dialog/test/index.spec.js @@ -102,3 +102,27 @@ test('button text', () => { test('dialog component', () => { expect(Dialog.Component).toEqual(DialogVue); }); + +test('default slot', () => { + const wrapper = mount(DialogVue, { + propsData: { + value: true + }, + scopedSlots: { + default: () => 'Custom Message' + } + }); + expect(wrapper).toMatchSnapshot(); +}); + +test('title slot', () => { + const wrapper = mount(DialogVue, { + propsData: { + value: true + }, + scopedSlots: { + title: () => 'Custom Title' + } + }); + expect(wrapper).toMatchSnapshot(); +});