primevue-mirror/components/lib/message/Message.spec.js

78 lines
1.9 KiB
JavaScript

import { config, mount } from '@vue/test-utils';
import PrimeVue from 'primevue/config';
import Message from './Message.vue';
config.global.mocks = {
$primevue: {
config: {
locale: {
aria: {
close: 'Close'
}
}
}
}
};
describe('Message.vue', () => {
let wrapper;
beforeEach(() => {
wrapper = mount(Message, {
props: {
severity: 'error'
},
slots: {
default: 'Error Message Content'
}
});
});
it('should exist', () => {
expect(wrapper.find('.p-message.p-component').exists()).toBe(true);
expect(wrapper.find('.p-message.p-component').classes()).toContain('p-message-error');
expect(wrapper.find('.p-message-text').text()).toContain('Error Message Content');
});
it('should close the message', async () => {
await wrapper.vm.close({});
expect(wrapper.vm.visible).toBe(false);
expect(wrapper.emitted().close[0]).toEqual([{}]);
});
it('should have custom close icon if provided', async () => {
await wrapper.setProps({ closeIcon: 'pi pi-discord' });
const icon = wrapper.find('.p-message-close-icon');
expect(icon.classes()).toContain('pi-discord');
});
});
describe('Message.vue', () => {
let wrapper;
beforeEach(() => {
wrapper = mount(Message, {
plugins: [PrimeVue],
props: {
severity: 'error',
life: 3000,
sticky: false
},
stubs: {
transition: false
},
slots: {
default: 'Error Message Content'
}
});
});
it('should sticky and life works', () => {
setTimeout(() => {
expect(wrapper.vm.visible).toBe(false);
}, 3001);
});
});