debian-mirror-gitlab/spec/frontend/blob_edit/edit_blob_spec.js

54 lines
1.6 KiB
JavaScript
Raw Normal View History

2021-01-03 14:25:43 +05:30
import waitForPromises from 'helpers/wait_for_promises';
2020-07-28 23:09:34 +05:30
import EditBlob from '~/blob_edit/edit_blob';
import EditorLite from '~/editor/editor_lite';
import MarkdownExtension from '~/editor/editor_markdown_ext';
2020-11-24 15:15:51 +05:30
import FileTemplateExtension from '~/editor/editor_file_template_ext';
2020-07-28 23:09:34 +05:30
jest.mock('~/editor/editor_lite');
jest.mock('~/editor/editor_markdown_ext');
describe('Blob Editing', () => {
2021-01-03 14:25:43 +05:30
const useMock = jest.fn();
const mockInstance = {
use: useMock,
getValue: jest.fn(),
focus: jest.fn(),
};
2020-07-28 23:09:34 +05:30
beforeEach(() => {
setFixtures(
2020-11-24 15:15:51 +05:30
`<div class="js-edit-blob-form"><div id="file_path"></div><div id="editor"></div><input id="file-content"></div>`,
2020-07-28 23:09:34 +05:30
);
2020-11-24 15:15:51 +05:30
jest.spyOn(EditorLite.prototype, 'createInstance').mockReturnValue(mockInstance);
2020-07-28 23:09:34 +05:30
});
2021-01-03 14:25:43 +05:30
const editorInst = isMarkdown => {
2020-07-28 23:09:34 +05:30
return new EditBlob({
isMarkdown,
});
};
2021-01-03 14:25:43 +05:30
const initEditor = async (isMarkdown = false) => {
editorInst(isMarkdown);
await waitForPromises();
};
2020-11-24 15:15:51 +05:30
it('loads FileTemplateExtension by default', async () => {
2020-07-28 23:09:34 +05:30
await initEditor();
2021-01-03 14:25:43 +05:30
expect(useMock).toHaveBeenCalledWith(FileTemplateExtension);
2020-07-28 23:09:34 +05:30
});
2020-11-24 15:15:51 +05:30
describe('Markdown', () => {
it('does not load MarkdownExtension by default', async () => {
await initEditor();
2021-01-03 14:25:43 +05:30
expect(useMock).not.toHaveBeenCalledWith(MarkdownExtension);
2020-11-24 15:15:51 +05:30
});
it('loads MarkdownExtension only for the markdown files', async () => {
await initEditor(true);
2021-01-03 14:25:43 +05:30
expect(useMock).toHaveBeenCalledTimes(2);
expect(useMock).toHaveBeenNthCalledWith(1, FileTemplateExtension);
expect(useMock).toHaveBeenNthCalledWith(2, MarkdownExtension);
2020-11-24 15:15:51 +05:30
});
2020-07-28 23:09:34 +05:30
});
});