diff options
Diffstat (limited to 'spec/frontend/blob_edit')
-rw-r--r-- | spec/frontend/blob_edit/blob_bundle_spec.js | 15 | ||||
-rw-r--r-- | spec/frontend/blob_edit/edit_blob_spec.js | 33 |
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); }); }); }); |