fix: message warning when not set icon

pull/2682/head
tanjinzhou 4 years ago
parent 1836f83730
commit 925b2a8261

@ -1 +1 @@
Subproject commit 7b17d6c0f051c4f7b45e48fac67cbe10815f7cc7 Subproject commit b756b4f33a902f1a919bc30b7b13d005a5277616

@ -1,4 +1,3 @@
import { mount } from '@vue/test-utils';
import { asyncExpect } from '@/tests/utils'; import { asyncExpect } from '@/tests/utils';
import message from '..'; import message from '..';
import SmileOutlined from '@ant-design/icons-vue/SmileOutlined'; import SmileOutlined from '@ant-design/icons-vue/SmileOutlined';
@ -59,7 +58,9 @@ describe('message', () => {
expect(document.querySelectorAll('.ant-message-notice').length).toBe(1); expect(document.querySelectorAll('.ant-message-notice').length).toBe(1);
hide2(); hide2();
}, 0); }, 0);
expect(document.querySelectorAll('.ant-message-notice').length).toBe(0); await asyncExpect(() => {
expect(document.querySelectorAll('.ant-message-notice').length).toBe(0);
}, 0);
}); });
it('should be able to destroy globally', async () => { it('should be able to destroy globally', async () => {
@ -110,16 +111,7 @@ describe('message', () => {
// https:// github.com/ant-design/ant-design/issues/8201 // https:// github.com/ant-design/ant-design/issues/8201
it('should hide message correctly', async () => { it('should hide message correctly', async () => {
let hide; let hide = message.loading('Action in progress..', 0);
const Test = {
mounted() {
hide = message.loading('Action in progress..', 0);
},
render() {
return <div>test</div>;
},
};
mount(Test, { sync: false });
await asyncExpect(() => { await asyncExpect(() => {
expect(document.querySelectorAll('.ant-message-notice').length).toBe(1); expect(document.querySelectorAll('.ant-message-notice').length).toBe(1);
hide(); hide();
@ -129,7 +121,7 @@ describe('message', () => {
}, 0); }, 0);
}); });
it('should allow custom icon', async () => { it('should allow custom icon', async () => {
message.open({ content: 'Message', icon: h => <SmileOutlined /> }); // eslint-disable-line message.open({ content: 'Message', icon: () => <SmileOutlined /> }); // eslint-disable-line
await asyncExpect(() => { await asyncExpect(() => {
expect(document.querySelectorAll('.anticon-smile').length).toBe(1); expect(document.querySelectorAll('.anticon-smile').length).toBe(1);
}, 0); }, 0);
@ -143,18 +135,9 @@ describe('message', () => {
}); });
// https://github.com/ant-design/ant-design/issues/8201 // https://github.com/ant-design/ant-design/issues/8201
it('should destroy messages correctly', async () => { it('should destroy messages correctly', async () => {
// eslint-disable-next-line message.loading('Action in progress1..', 0);
const Test = { message.loading('Action in progress2..', 0);
mounted() { setTimeout(() => message.destroy(), 1000);
message.loading('Action in progress1..', 0);
message.loading('Action in progress2..', 0);
setTimeout(() => message.destroy(), 1000);
},
render() {
return <div>test</div>;
},
};
mount(Test, { sync: false });
await asyncExpect(() => { await asyncExpect(() => {
expect(document.querySelectorAll('.ant-message-notice').length).toBe(2); expect(document.querySelectorAll('.ant-message-notice').length).toBe(2);

@ -49,6 +49,7 @@ const iconMap = {
function notice(args) { function notice(args) {
const duration = args.duration !== undefined ? args.duration : defaultDuration; const duration = args.duration !== undefined ? args.duration : defaultDuration;
const Icon = iconMap[args.type]; const Icon = iconMap[args.type];
const iconNode = Icon ? <Icon /> : '';
const target = args.key || key++; const target = args.key || key++;
const closePromise = new Promise(resolve => { const closePromise = new Promise(resolve => {
@ -68,7 +69,7 @@ function notice(args) {
<div <div
class={`${prefixCls}-custom-content${args.type ? ` ${prefixCls}-${args.type}` : ''}`} class={`${prefixCls}-custom-content${args.type ? ` ${prefixCls}-${args.type}` : ''}`}
> >
{args.icon ? typeof args.icon === 'function' ? args.icon() : args.icon : <Icon />} {args.icon ? (typeof args.icon === 'function' ? args.icon() : args.icon) : iconNode}
<span>{typeof args.content === 'function' ? args.content() : args.content}</span> <span>{typeof args.content === 'function' ? args.content() : args.content}</span>
</div> </div>
); );

@ -4,7 +4,7 @@
</div> </div>
</template> </template>
<script> <script>
import demo from '../antdv-demo/docs/menu/demo/index'; import demo from '../antdv-demo/docs/message/demo/index';
export default { export default {
components: { components: {

Loading…
Cancel
Save