summaryrefslogtreecommitdiff
path: root/spec/frontend/static_site_editor/rich_content_editor/modals
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/static_site_editor/rich_content_editor/modals')
-rw-r--r--spec/frontend/static_site_editor/rich_content_editor/modals/add_image/add_image_modal_spec.js77
-rw-r--r--spec/frontend/static_site_editor/rich_content_editor/modals/add_image/upload_image_tab_spec.js41
-rw-r--r--spec/frontend/static_site_editor/rich_content_editor/modals/insert_video_modal_spec.js44
3 files changed, 0 insertions, 162 deletions
diff --git a/spec/frontend/static_site_editor/rich_content_editor/modals/add_image/add_image_modal_spec.js b/spec/frontend/static_site_editor/rich_content_editor/modals/add_image/add_image_modal_spec.js
deleted file mode 100644
index c8c9f45618d..00000000000
--- a/spec/frontend/static_site_editor/rich_content_editor/modals/add_image/add_image_modal_spec.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import { GlModal, GlTabs } from '@gitlab/ui';
-import { shallowMount } from '@vue/test-utils';
-import { IMAGE_TABS } from '~/static_site_editor/rich_content_editor/constants';
-import AddImageModal from '~/static_site_editor/rich_content_editor/modals/add_image/add_image_modal.vue';
-import UploadImageTab from '~/static_site_editor/rich_content_editor/modals/add_image/upload_image_tab.vue';
-
-describe('Add Image Modal', () => {
- let wrapper;
- const propsData = { imageRoot: 'path/to/root/' };
-
- const findModal = () => wrapper.find(GlModal);
- const findTabs = () => wrapper.find(GlTabs);
- const findUploadImageTab = () => wrapper.find(UploadImageTab);
- const findUrlInput = () => wrapper.find({ ref: 'urlInput' });
- const findDescriptionInput = () => wrapper.find({ ref: 'descriptionInput' });
-
- beforeEach(() => {
- wrapper = shallowMount(AddImageModal, { propsData });
- });
-
- describe('when content is loaded', () => {
- it('renders a modal component', () => {
- expect(findModal().exists()).toBe(true);
- });
-
- it('renders a Tabs component', () => {
- expect(findTabs().exists()).toBe(true);
- });
-
- it('renders an upload image tab', () => {
- expect(findUploadImageTab().exists()).toBe(true);
- });
-
- it('renders an input to add an image URL', () => {
- expect(findUrlInput().exists()).toBe(true);
- });
-
- it('renders an input to add an image description', () => {
- expect(findDescriptionInput().exists()).toBe(true);
- });
- });
-
- describe('add image', () => {
- describe('Upload', () => {
- it('validates the file', () => {
- const preventDefault = jest.fn();
- const description = 'some description';
- const file = { name: 'some_file.png' };
-
- wrapper.vm.$refs.uploadImageTab = { validateFile: jest.fn() };
- // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details
- // eslint-disable-next-line no-restricted-syntax
- wrapper.setData({ file, description, tabIndex: IMAGE_TABS.UPLOAD_TAB });
-
- findModal().vm.$emit('ok', { preventDefault });
-
- expect(wrapper.vm.$refs.uploadImageTab.validateFile).toHaveBeenCalled();
- });
- });
-
- describe('URL', () => {
- it('emits an addImage event when a valid URL is specified', () => {
- const preventDefault = jest.fn();
- const mockImage = { imageUrl: '/some/valid/url.png', description: 'some description' };
- // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details
- // eslint-disable-next-line no-restricted-syntax
- wrapper.setData({ ...mockImage, tabIndex: IMAGE_TABS.URL_TAB });
-
- findModal().vm.$emit('ok', { preventDefault });
- expect(preventDefault).not.toHaveBeenCalled();
- expect(wrapper.emitted('addImage')).toEqual([
- [{ imageUrl: mockImage.imageUrl, altText: mockImage.description }],
- ]);
- });
- });
- });
-});
diff --git a/spec/frontend/static_site_editor/rich_content_editor/modals/add_image/upload_image_tab_spec.js b/spec/frontend/static_site_editor/rich_content_editor/modals/add_image/upload_image_tab_spec.js
deleted file mode 100644
index 11b73d58259..00000000000
--- a/spec/frontend/static_site_editor/rich_content_editor/modals/add_image/upload_image_tab_spec.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import { shallowMount } from '@vue/test-utils';
-import UploadImageTab from '~/static_site_editor/rich_content_editor/modals/add_image/upload_image_tab.vue';
-
-describe('Upload Image Tab', () => {
- let wrapper;
-
- beforeEach(() => {
- wrapper = shallowMount(UploadImageTab);
- });
-
- afterEach(() => wrapper.destroy());
-
- const triggerInputEvent = (size) => {
- const file = { size, name: 'file-name.png' };
- const mockEvent = new Event('input');
-
- Object.defineProperty(mockEvent, 'target', { value: { files: [file] } });
-
- wrapper.find({ ref: 'fileInput' }).element.dispatchEvent(mockEvent);
-
- return file;
- };
-
- describe('onInput', () => {
- it.each`
- size | fileError
- ${2000000000} | ${'Maximum file size is 2MB. Please select a smaller file.'}
- ${200} | ${null}
- `('validates the file correctly', ({ size, fileError }) => {
- triggerInputEvent(size);
-
- expect(wrapper.vm.fileError).toBe(fileError);
- });
- });
-
- it('emits input event when file is valid', () => {
- const file = triggerInputEvent(200);
-
- expect(wrapper.emitted('input')).toEqual([[file]]);
- });
-});
diff --git a/spec/frontend/static_site_editor/rich_content_editor/modals/insert_video_modal_spec.js b/spec/frontend/static_site_editor/rich_content_editor/modals/insert_video_modal_spec.js
deleted file mode 100644
index 392d31bf039..00000000000
--- a/spec/frontend/static_site_editor/rich_content_editor/modals/insert_video_modal_spec.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { GlModal } from '@gitlab/ui';
-import { shallowMount } from '@vue/test-utils';
-import InsertVideoModal from '~/static_site_editor/rich_content_editor/modals/insert_video_modal.vue';
-
-describe('Insert Video Modal', () => {
- let wrapper;
-
- const findModal = () => wrapper.find(GlModal);
- const findUrlInput = () => wrapper.find({ ref: 'urlInput' });
-
- const triggerInsertVideo = (url) => {
- const preventDefault = jest.fn();
- findUrlInput().vm.$emit('input', url);
- findModal().vm.$emit('primary', { preventDefault });
- };
-
- beforeEach(() => {
- wrapper = shallowMount(InsertVideoModal);
- });
-
- afterEach(() => wrapper.destroy());
-
- describe('when content is loaded', () => {
- it('renders a modal component', () => {
- expect(findModal().exists()).toBe(true);
- });
-
- it('renders an input to add a URL', () => {
- expect(findUrlInput().exists()).toBe(true);
- });
- });
-
- describe('insert video', () => {
- it.each`
- url | emitted
- ${'https://www.youtube.com/embed/someId'} | ${[['https://www.youtube.com/embed/someId']]}
- ${'https://www.youtube.com/watch?v=1234'} | ${[['https://www.youtube.com/embed/1234']]}
- ${'::youtube.com/invalid/url'} | ${undefined}
- `('formats the url correctly', ({ url, emitted }) => {
- triggerInsertVideo(url);
- expect(wrapper.emitted('insertVideo')).toEqual(emitted);
- });
- });
-});