1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
import { GlModal } from '@gitlab/ui';
import { mount } from '@vue/test-utils';
import ConfirmModal from '~/lib/utils/confirm_via_gl_modal/confirm_modal.vue';
describe('Confirm Modal', () => {
let wrapper;
let modal;
const createComponent = ({ primaryText, primaryVariant } = {}) => {
wrapper = mount(ConfirmModal, {
propsData: {
primaryText,
primaryVariant,
},
});
};
afterEach(() => {
wrapper.destroy();
});
const findGlModal = () => wrapper.findComponent(GlModal);
describe('Modal events', () => {
beforeEach(() => {
createComponent();
modal = findGlModal();
});
it('should emit `confirmed` event on `primary` modal event', () => {
findGlModal().vm.$emit('primary');
expect(wrapper.emitted('confirmed')).toBeTruthy();
});
it('should emit closed` event on `hidden` modal event', () => {
modal.vm.$emit('hidden');
expect(wrapper.emitted('closed')).toBeTruthy();
});
});
describe('Custom properties', () => {
it('should pass correct custom primary text & button variant to the modal when provided', () => {
const primaryText = "Let's do it!";
const primaryVariant = 'danger';
createComponent({ primaryText, primaryVariant });
const customProps = findGlModal().props('actionPrimary');
expect(customProps.text).toBe(primaryText);
expect(customProps.attributes.variant).toBe(primaryVariant);
});
it('should pass default primary text & button variant to the modal if no custom values provided', () => {
createComponent();
const customProps = findGlModal().props('actionPrimary');
expect(customProps.text).toBe('OK');
expect(customProps.attributes.variant).toBe('confirm');
});
});
});
|