58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
|
import { shallowMount } from '@vue/test-utils';
|
||
|
import { GlAlert } from '@gitlab/ui';
|
||
|
import DismissibleAlert from '~/vue_shared/components/dismissible_alert.vue';
|
||
|
|
||
|
const TEST_HTML = 'Hello World! <strong>Foo</strong>';
|
||
|
|
||
|
describe('vue_shared/components/dismissible_alert', () => {
|
||
|
const testAlertProps = {
|
||
|
primaryButtonText: 'Lorem ipsum',
|
||
|
primaryButtonLink: '/lorem/ipsum',
|
||
|
};
|
||
|
|
||
|
let wrapper;
|
||
|
|
||
|
const createComponent = (props = {}) => {
|
||
|
wrapper = shallowMount(DismissibleAlert, {
|
||
|
propsData: {
|
||
|
html: TEST_HTML,
|
||
|
...testAlertProps,
|
||
|
...props,
|
||
|
},
|
||
|
});
|
||
|
};
|
||
|
|
||
|
afterEach(() => {
|
||
|
wrapper.destroy();
|
||
|
});
|
||
|
|
||
|
const findAlert = () => wrapper.find(GlAlert);
|
||
|
|
||
|
describe('with default', () => {
|
||
|
beforeEach(() => {
|
||
|
createComponent();
|
||
|
});
|
||
|
|
||
|
it('shows alert', () => {
|
||
|
const alert = findAlert();
|
||
|
|
||
|
expect(alert.exists()).toBe(true);
|
||
|
expect(alert.props()).toEqual(expect.objectContaining(testAlertProps));
|
||
|
});
|
||
|
|
||
|
it('shows given HTML', () => {
|
||
|
expect(findAlert().html()).toContain(TEST_HTML);
|
||
|
});
|
||
|
|
||
|
describe('when dismissed', () => {
|
||
|
beforeEach(() => {
|
||
|
findAlert().vm.$emit('dismiss');
|
||
|
});
|
||
|
|
||
|
it('hides the alert', () => {
|
||
|
expect(findAlert().exists()).toBe(false);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|