Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/blob_edit/edit_blob_spec.js')
-rw-r--r--spec/frontend/blob_edit/edit_blob_spec.js41
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');
+ });
});