From 7d5e6412bef7fd457e22532faf859e551f8196fc Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 6 Mar 2020 11:28:26 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- spec/javascripts/editor/editor_lite_spec.js | 49 +++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'spec/javascripts') diff --git a/spec/javascripts/editor/editor_lite_spec.js b/spec/javascripts/editor/editor_lite_spec.js index 154daccf82d..106264aa13f 100644 --- a/spec/javascripts/editor/editor_lite_spec.js +++ b/spec/javascripts/editor/editor_lite_spec.js @@ -1,5 +1,6 @@ import { editor as monacoEditor, Uri } from 'monaco-editor'; import Editor from '~/editor/editor_lite'; +import { DEFAULT_THEME, themes } from '~/ide/lib/themes'; describe('Base editor', () => { let editorEl; @@ -108,4 +109,52 @@ describe('Base editor', () => { expect(editor.model.getLanguageIdentifier().language).toEqual('plaintext'); }); }); + + describe('syntax highlighting theme', () => { + let themeDefineSpy; + let themeSetSpy; + let defaultScheme; + + beforeEach(() => { + themeDefineSpy = spyOn(monacoEditor, 'defineTheme'); + themeSetSpy = spyOn(monacoEditor, 'setTheme'); + defaultScheme = window.gon.user_color_scheme; + }); + + afterEach(() => { + window.gon.user_color_scheme = defaultScheme; + }); + + it('sets default syntax highlighting theme', () => { + const expectedTheme = themes.find(t => t.name === DEFAULT_THEME); + + editor = new Editor(); + + expect(themeDefineSpy).toHaveBeenCalledWith(DEFAULT_THEME, expectedTheme.data); + expect(themeSetSpy).toHaveBeenCalledWith(DEFAULT_THEME); + }); + + it('sets correct theme if it is set in users preferences', () => { + const expectedTheme = themes.find(t => t.name !== DEFAULT_THEME); + + expect(expectedTheme.name).not.toBe(DEFAULT_THEME); + + window.gon.user_color_scheme = expectedTheme.name; + editor = new Editor(); + + expect(themeDefineSpy).toHaveBeenCalledWith(expectedTheme.name, expectedTheme.data); + expect(themeSetSpy).toHaveBeenCalledWith(expectedTheme.name); + }); + + it('falls back to default theme if a selected one is not supported yet', () => { + const name = 'non-existent-theme'; + const nonExistentTheme = { name }; + + window.gon.user_color_scheme = nonExistentTheme.name; + editor = new Editor(); + + expect(themeDefineSpy).not.toHaveBeenCalled(); + expect(themeSetSpy).toHaveBeenCalledWith(DEFAULT_THEME); + }); + }); }); -- cgit v1.2.3