diff options
Diffstat (limited to 'spec/frontend/editor/editor_ci_schema_ext_spec.js')
-rw-r--r-- | spec/frontend/editor/editor_ci_schema_ext_spec.js | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/spec/frontend/editor/editor_ci_schema_ext_spec.js b/spec/frontend/editor/editor_ci_schema_ext_spec.js deleted file mode 100644 index 2f0ecfb151e..00000000000 --- a/spec/frontend/editor/editor_ci_schema_ext_spec.js +++ /dev/null @@ -1,108 +0,0 @@ -import { languages } from 'monaco-editor'; -import { TEST_HOST } from 'helpers/test_constants'; -import { EXTENSION_CI_SCHEMA_FILE_NAME_MATCH } from '~/editor/constants'; -import EditorLite from '~/editor/editor_lite'; -import { CiSchemaExtension } from '~/editor/extensions/editor_ci_schema_ext'; - -const mockRef = 'AABBCCDD'; - -describe('~/editor/editor_ci_config_ext', () => { - const defaultBlobPath = '.gitlab-ci.yml'; - - let editor; - let instance; - let editorEl; - let originalGitlabUrl; - - const createMockEditor = ({ blobPath = defaultBlobPath } = {}) => { - setFixtures('<div id="editor"></div>'); - editorEl = document.getElementById('editor'); - editor = new EditorLite(); - instance = editor.createInstance({ - el: editorEl, - blobPath, - blobContent: '', - }); - instance.use(new CiSchemaExtension()); - }; - - beforeAll(() => { - originalGitlabUrl = gon.gitlab_url; - gon.gitlab_url = TEST_HOST; - }); - - afterAll(() => { - gon.gitlab_url = originalGitlabUrl; - }); - - beforeEach(() => { - createMockEditor(); - }); - - afterEach(() => { - instance.dispose(); - editorEl.remove(); - }); - - describe('registerCiSchema', () => { - beforeEach(() => { - jest.spyOn(languages.yaml.yamlDefaults, 'setDiagnosticsOptions'); - }); - - describe('register validations options with monaco for yaml language', () => { - const mockProjectNamespace = 'namespace1'; - const mockProjectPath = 'project1'; - - const getConfiguredYmlSchema = () => { - return languages.yaml.yamlDefaults.setDiagnosticsOptions.mock.calls[0][0].schemas[0]; - }; - - it('with expected basic validation configuration', () => { - instance.registerCiSchema({ - projectNamespace: mockProjectNamespace, - projectPath: mockProjectPath, - }); - - const expectedOptions = { - validate: true, - enableSchemaRequest: true, - hover: true, - completion: true, - }; - - expect(languages.yaml.yamlDefaults.setDiagnosticsOptions).toHaveBeenCalledTimes(1); - expect(languages.yaml.yamlDefaults.setDiagnosticsOptions).toHaveBeenCalledWith( - expect.objectContaining(expectedOptions), - ); - }); - - it('with an schema uri that contains project and ref', () => { - instance.registerCiSchema({ - projectNamespace: mockProjectNamespace, - projectPath: mockProjectPath, - ref: mockRef, - }); - - expect(getConfiguredYmlSchema()).toEqual({ - uri: `${TEST_HOST}/${mockProjectNamespace}/${mockProjectPath}/-/schema/${mockRef}/${EXTENSION_CI_SCHEMA_FILE_NAME_MATCH}`, - fileMatch: [defaultBlobPath], - }); - }); - - it('with an alternative file name match', () => { - createMockEditor({ blobPath: 'dir1/dir2/another-ci-filename.yml' }); - - instance.registerCiSchema({ - projectNamespace: mockProjectNamespace, - projectPath: mockProjectPath, - ref: mockRef, - }); - - expect(getConfiguredYmlSchema()).toEqual({ - uri: `${TEST_HOST}/${mockProjectNamespace}/${mockProjectPath}/-/schema/${mockRef}/${EXTENSION_CI_SCHEMA_FILE_NAME_MATCH}`, - fileMatch: ['another-ci-filename.yml'], - }); - }); - }); - }); -}); |