diff options
Diffstat (limited to 'spec/frontend/ide/utils_spec.js')
-rw-r--r-- | spec/frontend/ide/utils_spec.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/spec/frontend/ide/utils_spec.js b/spec/frontend/ide/utils_spec.js index 15baeca7f36..b6de576a0a4 100644 --- a/spec/frontend/ide/utils_spec.js +++ b/spec/frontend/ide/utils_spec.js @@ -1,6 +1,7 @@ import { isTextFile, registerLanguages, + registerSchemas, trimPathComponents, insertFinalNewline, trimTrailingWhitespace, @@ -158,6 +159,57 @@ describe('WebIDE utils', () => { }); }); + describe('registerSchemas', () => { + let options; + + beforeEach(() => { + options = { + validate: true, + enableSchemaRequest: true, + hover: true, + completion: true, + schemas: [ + { + uri: 'http://myserver/foo-schema.json', + fileMatch: ['*'], + schema: { + id: 'http://myserver/foo-schema.json', + type: 'object', + properties: { + p1: { enum: ['v1', 'v2'] }, + p2: { $ref: 'http://myserver/bar-schema.json' }, + }, + }, + }, + { + uri: 'http://myserver/bar-schema.json', + schema: { + id: 'http://myserver/bar-schema.json', + type: 'object', + properties: { q1: { enum: ['x1', 'x2'] } }, + }, + }, + ], + }; + + jest.spyOn(languages.json.jsonDefaults, 'setDiagnosticsOptions'); + jest.spyOn(languages.yaml.yamlDefaults, 'setDiagnosticsOptions'); + }); + + it.each` + language | defaultsObj + ${'json'} | ${languages.json.jsonDefaults} + ${'yaml'} | ${languages.yaml.yamlDefaults} + `( + 'registers the given schemas with monaco for lang: $language', + ({ language, defaultsObj }) => { + registerSchemas({ language, options }); + + expect(defaultsObj.setDiagnosticsOptions).toHaveBeenCalledWith(options); + }, + ); + }); + describe('trimTrailingWhitespace', () => { it.each` input | output |