Commit e8098ebd authored by Natalia Tepluhina's avatar Natalia Tepluhina

Merge branch 'pb-move-ci-badge-to-vue-test-utils' into 'master'

Moves ci_badge_link_spec.js to Vue test Utils

See merge request gitlab-org/gitlab!53649
parents fbafcab6 396122a5
import Vue from 'vue'; import { shallowMount } from '@vue/test-utils';
import mountComponent from 'helpers/vue_mount_component_helper'; import CiBadge from '~/vue_shared/components/ci_badge_link.vue';
import ciBadge from '~/vue_shared/components/ci_badge_link.vue'; import CiIcon from '~/vue_shared/components/ci_icon.vue';
describe('CI Badge Link Component', () => { describe('CI Badge Link Component', () => {
let CIBadge; let wrapper;
let vm;
const statuses = { const statuses = {
canceled: { canceled: {
...@@ -72,29 +71,30 @@ describe('CI Badge Link Component', () => { ...@@ -72,29 +71,30 @@ describe('CI Badge Link Component', () => {
}, },
}; };
beforeEach(() => { const findIcon = () => wrapper.findComponent(CiIcon);
CIBadge = Vue.extend(ciBadge);
}); const createComponent = (propsData) => {
wrapper = shallowMount(CiBadge, { propsData });
};
afterEach(() => { afterEach(() => {
vm.$destroy(); wrapper.destroy();
wrapper = null;
}); });
it('should render each status badge', () => { it.each(Object.keys(statuses))('should render badge for status: %s', (status) => {
Object.keys(statuses).map((status) => { createComponent({ status: statuses[status] });
vm = mountComponent(CIBadge, { status: statuses[status] });
expect(vm.$el.getAttribute('href')).toEqual(statuses[status].details_path); expect(wrapper.attributes('href')).toBe(statuses[status].details_path);
expect(vm.$el.textContent.trim()).toEqual(statuses[status].text); expect(wrapper.text()).toBe(statuses[status].text);
expect(vm.$el.getAttribute('class')).toContain(`ci-status ci-${statuses[status].group}`); expect(wrapper.classes()).toContain('ci-status');
expect(vm.$el.querySelector('svg')).toBeDefined(); expect(wrapper.classes()).toContain(`ci-${statuses[status].group}`);
return vm; expect(findIcon().exists()).toBe(true);
});
}); });
it('should not render label', () => { it('should not render label', () => {
vm = mountComponent(CIBadge, { status: statuses.canceled, showText: false }); createComponent({ status: statuses.canceled, showText: false });
expect(vm.$el.textContent.trim()).toEqual(''); expect(wrapper.text()).toBe('');
}); });
}); });
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment