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/ide/lib/editor_spec.js')
-rw-r--r--spec/frontend/ide/lib/editor_spec.js46
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');