diff options
Diffstat (limited to 'spec/frontend/blob_edit/edit_blob_spec.js')
-rw-r--r-- | spec/frontend/blob_edit/edit_blob_spec.js | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/spec/frontend/blob_edit/edit_blob_spec.js b/spec/frontend/blob_edit/edit_blob_spec.js index ac8b916e448..9637ea09a3a 100644 --- a/spec/frontend/blob_edit/edit_blob_spec.js +++ b/spec/frontend/blob_edit/edit_blob_spec.js @@ -1,25 +1,35 @@ 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'; -import FileTemplateExtension from '~/editor/editor_file_template_ext'; +import { EditorMarkdownExtension } from '~/editor/editor_markdown_ext'; +import { FileTemplateExtension } from '~/editor/editor_file_template_ext'; jest.mock('~/editor/editor_lite'); jest.mock('~/editor/editor_markdown_ext'); +jest.mock('~/editor/editor_file_template_ext'); describe('Blob Editing', () => { const useMock = jest.fn(); const mockInstance = { use: useMock, - getValue: jest.fn(), + setValue: jest.fn(), + getValue: jest.fn().mockReturnValue('test value'), 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>`, - ); + setFixtures(` + <form class="js-edit-blob-form"> + <div id="file_path"></div> + <div id="editor"></div> + <textarea id="file-content"></textarea> + </form> + `); jest.spyOn(EditorLite.prototype, 'createInstance').mockReturnValue(mockInstance); }); + afterEach(() => { + EditorMarkdownExtension.mockClear(); + FileTemplateExtension.mockClear(); + }); const editorInst = isMarkdown => { return new EditBlob({ @@ -34,20 +44,31 @@ describe('Blob Editing', () => { it('loads FileTemplateExtension by default', async () => { await initEditor(); - expect(useMock).toHaveBeenCalledWith(FileTemplateExtension); + expect(FileTemplateExtension).toHaveBeenCalledTimes(1); }); describe('Markdown', () => { it('does not load MarkdownExtension by default', async () => { await initEditor(); - expect(useMock).not.toHaveBeenCalledWith(MarkdownExtension); + expect(EditorMarkdownExtension).not.toHaveBeenCalled(); }); it('loads MarkdownExtension only for the markdown files', async () => { await initEditor(true); expect(useMock).toHaveBeenCalledTimes(2); - expect(useMock).toHaveBeenNthCalledWith(1, FileTemplateExtension); - expect(useMock).toHaveBeenNthCalledWith(2, MarkdownExtension); + expect(FileTemplateExtension).toHaveBeenCalledTimes(1); + expect(EditorMarkdownExtension).toHaveBeenCalledTimes(1); }); }); + + it('adds trailing newline to the blob content on submit', async () => { + const form = document.querySelector('.js-edit-blob-form'); + const fileContentEl = document.getElementById('file-content'); + + await initEditor(); + + form.dispatchEvent(new Event('submit')); + + expect(fileContentEl.value).toBe('test value\n'); + }); }); |