63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
import Vue from 'vue';
|
|
import router from '~/ide/ide_router';
|
|
import Item from '~/ide/components/merge_requests/item.vue';
|
|
import mountCompontent from '../../../helpers/vue_mount_component_helper';
|
|
|
|
describe('IDE merge request item', () => {
|
|
const Component = Vue.extend(Item);
|
|
let vm;
|
|
|
|
beforeEach(() => {
|
|
vm = mountCompontent(Component, {
|
|
item: {
|
|
iid: 1,
|
|
projectPathWithNamespace: 'gitlab-org/gitlab-ce',
|
|
title: 'Merge request title',
|
|
},
|
|
currentId: '1',
|
|
currentProjectId: 'gitlab-org/gitlab-ce',
|
|
});
|
|
});
|
|
|
|
afterEach(() => {
|
|
vm.$destroy();
|
|
});
|
|
|
|
it('renders merge requests data', () => {
|
|
expect(vm.$el.textContent).toContain('Merge request title');
|
|
expect(vm.$el.textContent).toContain('gitlab-org/gitlab-ce!1');
|
|
});
|
|
|
|
it('renders link with href', () => {
|
|
const expectedHref = router.resolve(
|
|
`/project/${vm.item.projectPathWithNamespace}/merge_requests/${vm.item.iid}`,
|
|
).href;
|
|
|
|
expect(vm.$el).toMatch('a');
|
|
expect(vm.$el).toHaveAttr('href', expectedHref);
|
|
});
|
|
|
|
it('renders icon if ID matches currentId', () => {
|
|
expect(vm.$el.querySelector('.ic-mobile-issue-close')).not.toBe(null);
|
|
});
|
|
|
|
it('does not render icon if ID does not match currentId', done => {
|
|
vm.currentId = '2';
|
|
|
|
vm.$nextTick(() => {
|
|
expect(vm.$el.querySelector('.ic-mobile-issue-close')).toBe(null);
|
|
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('does not render icon if project ID does not match', done => {
|
|
vm.currentProjectId = 'test/test';
|
|
|
|
vm.$nextTick(() => {
|
|
expect(vm.$el.querySelector('.ic-mobile-issue-close')).toBe(null);
|
|
|
|
done();
|
|
});
|
|
});
|
|
});
|