50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
import { shallowMount } from '@vue/test-utils';
|
|
import IdenticonComponent from '~/vue_shared/components/identicon.vue';
|
|
|
|
describe('Identicon', () => {
|
|
let wrapper;
|
|
|
|
const defaultProps = {
|
|
entityId: 1,
|
|
entityName: 'entity-name',
|
|
sizeClass: 's40',
|
|
};
|
|
|
|
const createComponent = (props = {}) => {
|
|
wrapper = shallowMount(IdenticonComponent, {
|
|
propsData: {
|
|
...defaultProps,
|
|
...props,
|
|
},
|
|
});
|
|
};
|
|
|
|
afterEach(() => {
|
|
wrapper.destroy();
|
|
wrapper = null;
|
|
});
|
|
|
|
describe('entity id is a number', () => {
|
|
beforeEach(() => createComponent());
|
|
|
|
it('matches snapshot', () => {
|
|
expect(wrapper.element).toMatchSnapshot();
|
|
});
|
|
|
|
it('adds a correct class to identicon', () => {
|
|
expect(wrapper.find({ ref: 'identicon' }).classes()).toContain('bg2');
|
|
});
|
|
});
|
|
|
|
describe('entity id is a GraphQL id', () => {
|
|
beforeEach(() => createComponent({ entityId: 'gid://gitlab/Project/8' }));
|
|
|
|
it('matches snapshot', () => {
|
|
expect(wrapper.element).toMatchSnapshot();
|
|
});
|
|
|
|
it('adds a correct class to identicon', () => {
|
|
expect(wrapper.find({ ref: 'identicon' }).classes()).toContain('bg2');
|
|
});
|
|
});
|
|
});
|