2020-03-13 15:44:24 +05:30
|
|
|
import { shallowMount } from '@vue/test-utils';
|
2020-06-23 00:09:42 +05:30
|
|
|
import { createStore } from '~/ide/stores';
|
|
|
|
import { createRouter } from '~/ide/ide_router';
|
2018-11-18 11:00:15 +05:30
|
|
|
import Item from '~/ide/components/branches/item.vue';
|
2020-03-13 15:44:24 +05:30
|
|
|
import Icon from '~/vue_shared/components/icon.vue';
|
|
|
|
import Timeago from '~/vue_shared/components/time_ago_tooltip.vue';
|
2018-11-18 11:00:15 +05:30
|
|
|
import { projectData } from '../../mock_data';
|
|
|
|
|
|
|
|
const TEST_BRANCH = {
|
|
|
|
name: 'master',
|
|
|
|
committedDate: '2018-01-05T05:50Z',
|
|
|
|
};
|
|
|
|
const TEST_PROJECT_ID = projectData.name_with_namespace;
|
|
|
|
|
|
|
|
describe('IDE branch item', () => {
|
2020-03-13 15:44:24 +05:30
|
|
|
let wrapper;
|
2020-06-23 00:09:42 +05:30
|
|
|
let store;
|
|
|
|
let router;
|
2020-03-13 15:44:24 +05:30
|
|
|
|
|
|
|
function createComponent(props = {}) {
|
|
|
|
wrapper = shallowMount(Item, {
|
|
|
|
propsData: {
|
|
|
|
item: { ...TEST_BRANCH },
|
|
|
|
projectId: TEST_PROJECT_ID,
|
|
|
|
isActive: false,
|
|
|
|
...props,
|
|
|
|
},
|
2020-06-23 00:09:42 +05:30
|
|
|
router,
|
2018-11-18 11:00:15 +05:30
|
|
|
});
|
2020-03-13 15:44:24 +05:30
|
|
|
}
|
2018-11-18 11:00:15 +05:30
|
|
|
|
2020-06-23 00:09:42 +05:30
|
|
|
beforeEach(() => {
|
|
|
|
store = createStore();
|
|
|
|
router = createRouter(store);
|
|
|
|
});
|
|
|
|
|
2018-11-18 11:00:15 +05:30
|
|
|
afterEach(() => {
|
2020-03-13 15:44:24 +05:30
|
|
|
wrapper.destroy();
|
2018-11-18 11:00:15 +05:30
|
|
|
});
|
|
|
|
|
2020-03-13 15:44:24 +05:30
|
|
|
describe('if not active', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
createComponent();
|
|
|
|
});
|
|
|
|
it('renders branch name and timeago', () => {
|
|
|
|
expect(wrapper.text()).toContain(TEST_BRANCH.name);
|
|
|
|
expect(wrapper.find(Timeago).props('time')).toBe(TEST_BRANCH.committedDate);
|
|
|
|
expect(wrapper.find(Icon).exists()).toBe(false);
|
|
|
|
});
|
2018-11-18 11:00:15 +05:30
|
|
|
|
2020-03-13 15:44:24 +05:30
|
|
|
it('renders link to branch', () => {
|
|
|
|
const expectedHref = router.resolve(`/project/${TEST_PROJECT_ID}/edit/${TEST_BRANCH.name}`)
|
|
|
|
.href;
|
2018-12-13 13:39:08 +05:30
|
|
|
|
2020-03-13 15:44:24 +05:30
|
|
|
expect(wrapper.text()).toMatch('a');
|
|
|
|
expect(wrapper.attributes('href')).toBe(expectedHref);
|
|
|
|
});
|
2018-11-18 11:00:15 +05:30
|
|
|
});
|
|
|
|
|
2020-03-13 15:44:24 +05:30
|
|
|
it('renders icon if is not active', () => {
|
|
|
|
createComponent({ isActive: true });
|
2018-11-18 11:00:15 +05:30
|
|
|
|
2020-03-13 15:44:24 +05:30
|
|
|
expect(wrapper.find(Icon).exists()).toBe(true);
|
2018-11-18 11:00:15 +05:30
|
|
|
});
|
|
|
|
});
|