diff options
Diffstat (limited to 'spec/frontend/ide/lib/editor_spec.js')
-rw-r--r-- | spec/frontend/ide/lib/editor_spec.js | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/spec/frontend/ide/lib/editor_spec.js b/spec/frontend/ide/lib/editor_spec.js index 36d4c3c26ee..f5815771cdf 100644 --- a/spec/frontend/ide/lib/editor_spec.js +++ b/spec/frontend/ide/lib/editor_spec.js @@ -1,4 +1,9 @@ -import { editor as monacoEditor, languages as monacoLanguages } from 'monaco-editor'; +import { + editor as monacoEditor, + languages as monacoLanguages, + Range, + Selection, +} from 'monaco-editor'; import Editor from '~/ide/lib/editor'; import { defaultEditorOptions } from '~/ide/lib/editor_options'; import { file } from '../helpers'; @@ -72,12 +77,13 @@ describe('Multi-file editor library', () => { expect(monacoEditor.createDiffEditor).toHaveBeenCalledWith(holder, { ...defaultEditorOptions, + ignoreTrimWhitespace: false, quickSuggestions: false, occurrencesHighlight: false, renderSideBySide: false, - readOnly: true, - renderLineHighlight: 'all', - hideCursorInOverviewRuler: false, + readOnly: false, + renderLineHighlight: 'none', + hideCursorInOverviewRuler: true, }); }); }); @@ -193,6 +199,38 @@ describe('Multi-file editor library', () => { }); }); + describe('replaceSelectedText', () => { + let model; + let editor; + + beforeEach(() => { + instance.createInstance(holder); + + model = instance.createModel({ + ...file(), + key: 'index.md', + path: 'index.md', + }); + + instance.attachModel(model); + + editor = instance.instance; + editor.getModel().setValue('foo bar baz'); + editor.setSelection(new Range(1, 5, 1, 8)); + + instance.replaceSelectedText('hello'); + }); + + it('replaces the text selected in editor with the one provided', () => { + expect(editor.getModel().getValue()).toBe('foo hello baz'); + }); + + it('sets cursor to end of the replaced string', () => { + const selection = editor.getSelection(); + expect(selection).toEqual(new Selection(1, 10, 1, 10)); + }); + }); + describe('dispose', () => { it('calls disposble dispose method', () => { jest.spyOn(instance.disposable, 'dispose'); |