42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
|
import { shallowMount, mount } from '@vue/test-utils';
|
||
|
import RunnerEditButton from '~/runner/components/runner_edit_button.vue';
|
||
|
import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
|
||
|
|
||
|
describe('RunnerEditButton', () => {
|
||
|
let wrapper;
|
||
|
|
||
|
const getTooltipValue = () => getBinding(wrapper.element, 'gl-tooltip').value;
|
||
|
|
||
|
const createComponent = ({ attrs = {}, mountFn = shallowMount } = {}) => {
|
||
|
wrapper = mountFn(RunnerEditButton, {
|
||
|
attrs,
|
||
|
directives: {
|
||
|
GlTooltip: createMockDirective(),
|
||
|
},
|
||
|
});
|
||
|
};
|
||
|
|
||
|
beforeEach(() => {
|
||
|
createComponent();
|
||
|
});
|
||
|
|
||
|
afterEach(() => {
|
||
|
wrapper.destroy();
|
||
|
});
|
||
|
|
||
|
it('Displays Edit text', () => {
|
||
|
expect(wrapper.attributes('aria-label')).toBe('Edit');
|
||
|
});
|
||
|
|
||
|
it('Displays Edit tooltip', () => {
|
||
|
expect(getTooltipValue()).toBe('Edit');
|
||
|
});
|
||
|
|
||
|
it('Renders a link and adds an href attribute', () => {
|
||
|
createComponent({ attrs: { href: '/edit' }, mountFn: mount });
|
||
|
|
||
|
expect(wrapper.element.tagName).toBe('A');
|
||
|
expect(wrapper.attributes('href')).toBe('/edit');
|
||
|
});
|
||
|
});
|