48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
import { mount } from '@vue/test-utils';
|
|
import Avatar from './Avatar.vue';
|
|
import Thumbnail from './Thumbnail.vue';
|
|
|
|
describe('Thumbnail.vue', () => {
|
|
it('should render the agent thumbnail if valid image is passed', () => {
|
|
const wrapper = mount(Thumbnail, {
|
|
propsData: {
|
|
src: 'https://some_valid_url.com',
|
|
},
|
|
data() {
|
|
return {
|
|
hasImageLoaded: true,
|
|
imgError: false,
|
|
};
|
|
},
|
|
});
|
|
expect(wrapper.find('.user-thumbnail').exists()).toBe(true);
|
|
const avatarComponent = wrapper.findComponent(Avatar);
|
|
expect(avatarComponent.isVisible()).toBe(false);
|
|
});
|
|
|
|
it('should render the avatar component if invalid image is passed', () => {
|
|
const wrapper = mount(Thumbnail, {
|
|
propsData: {
|
|
src: 'https://some_invalid_url.com',
|
|
},
|
|
data() {
|
|
return {
|
|
hasImageLoaded: true,
|
|
imgError: true,
|
|
};
|
|
},
|
|
});
|
|
expect(wrapper.find('#image').exists()).toBe(false);
|
|
const avatarComponent = wrapper.findComponent(Avatar);
|
|
expect(avatarComponent.isVisible()).toBe(true);
|
|
});
|
|
|
|
it('should the initial of the name if no image is passed', () => {
|
|
const wrapper = mount(Avatar, {
|
|
propsData: {
|
|
username: 'Angie Rojas',
|
|
},
|
|
});
|
|
expect(wrapper.find('div').text()).toBe('AR');
|
|
});
|
|
});
|