summaryrefslogtreecommitdiff
path: root/spec/frontend/blob_edit
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/blob_edit')
-rw-r--r--spec/frontend/blob_edit/blob_bundle_spec.js15
-rw-r--r--spec/frontend/blob_edit/edit_blob_spec.js33
2 files changed, 33 insertions, 15 deletions
diff --git a/spec/frontend/blob_edit/blob_bundle_spec.js b/spec/frontend/blob_edit/blob_bundle_spec.js
index a105b62586b..eecc54be35b 100644
--- a/spec/frontend/blob_edit/blob_bundle_spec.js
+++ b/spec/frontend/blob_edit/blob_bundle_spec.js
@@ -1,10 +1,25 @@
import $ from 'jquery';
import { mockTracking, unmockTracking } from 'helpers/tracking_helper';
+import waitForPromises from 'helpers/wait_for_promises';
import blobBundle from '~/blob_edit/blob_bundle';
+import EditorLite from '~/blob_edit/edit_blob';
+
jest.mock('~/blob_edit/edit_blob');
describe('BlobBundle', () => {
+ it('does not load EditorLite by default', () => {
+ blobBundle();
+ expect(EditorLite).not.toHaveBeenCalled();
+ });
+
+ it('loads EditorLite for the edit screen', async () => {
+ setFixtures(`<div class="js-edit-blob-form"></div>`);
+ blobBundle();
+ await waitForPromises();
+ expect(EditorLite).toHaveBeenCalled();
+ });
+
describe('No Suggest Popover', () => {
beforeEach(() => {
setFixtures(`
diff --git a/spec/frontend/blob_edit/edit_blob_spec.js b/spec/frontend/blob_edit/edit_blob_spec.js
index 8f92e8498b9..ac8b916e448 100644
--- a/spec/frontend/blob_edit/edit_blob_spec.js
+++ b/spec/frontend/blob_edit/edit_blob_spec.js
@@ -1,3 +1,4 @@
+import waitForPromises from 'helpers/wait_for_promises';
import EditBlob from '~/blob_edit/edit_blob';
import EditorLite from '~/editor/editor_lite';
import MarkdownExtension from '~/editor/editor_markdown_ext';
@@ -7,7 +8,12 @@ jest.mock('~/editor/editor_lite');
jest.mock('~/editor/editor_markdown_ext');
describe('Blob Editing', () => {
- const mockInstance = 'foo';
+ const useMock = jest.fn();
+ const mockInstance = {
+ use: useMock,
+ getValue: jest.fn(),
+ focus: jest.fn(),
+ };
beforeEach(() => {
setFixtures(
`<div class="js-edit-blob-form"><div id="file_path"></div><div id="editor"></div><input id="file-content"></div>`,
@@ -15,36 +21,33 @@ describe('Blob Editing', () => {
jest.spyOn(EditorLite.prototype, 'createInstance').mockReturnValue(mockInstance);
});
- const initEditor = (isMarkdown = false) => {
+ const editorInst = isMarkdown => {
return new EditBlob({
isMarkdown,
- monacoEnabled: true,
});
};
+ const initEditor = async (isMarkdown = false) => {
+ editorInst(isMarkdown);
+ await waitForPromises();
+ };
+
it('loads FileTemplateExtension by default', async () => {
await initEditor();
- expect(EditorLite.prototype.use).toHaveBeenCalledWith(
- expect.arrayContaining([FileTemplateExtension]),
- mockInstance,
- );
+ expect(useMock).toHaveBeenCalledWith(FileTemplateExtension);
});
describe('Markdown', () => {
it('does not load MarkdownExtension by default', async () => {
await initEditor();
- expect(EditorLite.prototype.use).not.toHaveBeenCalledWith(
- expect.arrayContaining([MarkdownExtension]),
- mockInstance,
- );
+ expect(useMock).not.toHaveBeenCalledWith(MarkdownExtension);
});
it('loads MarkdownExtension only for the markdown files', async () => {
await initEditor(true);
- expect(EditorLite.prototype.use).toHaveBeenCalledWith(
- [MarkdownExtension, FileTemplateExtension],
- mockInstance,
- );
+ expect(useMock).toHaveBeenCalledTimes(2);
+ expect(useMock).toHaveBeenNthCalledWith(1, FileTemplateExtension);
+ expect(useMock).toHaveBeenNthCalledWith(2, MarkdownExtension);
});
});
});