Path: blob/main/src/vs/workbench/contrib/preferences/test/browser/settingsTreeModels.test.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';7import { settingKeyToDisplayFormat, parseQuery, IParsedQuery } from '../../browser/settingsTreeModels.js';89suite('SettingsTree', () => {10test('settingKeyToDisplayFormat', () => {11assert.deepStrictEqual(12settingKeyToDisplayFormat('foo.bar'),13{14category: 'Foo',15label: 'Bar'16});1718assert.deepStrictEqual(19settingKeyToDisplayFormat('foo.bar.etc'),20{21category: 'Foo › Bar',22label: 'Etc'23});2425assert.deepStrictEqual(26settingKeyToDisplayFormat('fooBar.etcSomething'),27{28category: 'Foo Bar',29label: 'Etc Something'30});3132assert.deepStrictEqual(33settingKeyToDisplayFormat('foo'),34{35category: '',36label: 'Foo'37});3839assert.deepStrictEqual(40settingKeyToDisplayFormat('foo.1leading.number'),41{42category: 'Foo › 1leading',43label: 'Number'44});4546assert.deepStrictEqual(47settingKeyToDisplayFormat('foo.1Leading.number'),48{49category: 'Foo › 1 Leading',50label: 'Number'51});52});5354test('settingKeyToDisplayFormat - with category', () => {55assert.deepStrictEqual(56settingKeyToDisplayFormat('foo.bar', 'foo'),57{58category: '',59label: 'Bar'60});6162assert.deepStrictEqual(63settingKeyToDisplayFormat('disableligatures.ligatures', 'disableligatures'),64{65category: '',66label: 'Ligatures'67});6869assert.deepStrictEqual(70settingKeyToDisplayFormat('foo.bar.etc', 'foo'),71{72category: 'Bar',73label: 'Etc'74});7576assert.deepStrictEqual(77settingKeyToDisplayFormat('fooBar.etcSomething', 'foo'),78{79category: 'Foo Bar',80label: 'Etc Something'81});8283assert.deepStrictEqual(84settingKeyToDisplayFormat('foo.bar.etc', 'foo/bar'),85{86category: '',87label: 'Etc'88});8990assert.deepStrictEqual(91settingKeyToDisplayFormat('foo.bar.etc', 'something/foo'),92{93category: 'Bar',94label: 'Etc'95});9697assert.deepStrictEqual(98settingKeyToDisplayFormat('bar.etc', 'something.bar'),99{100category: '',101label: 'Etc'102});103104assert.deepStrictEqual(105settingKeyToDisplayFormat('fooBar.etc', 'fooBar'),106{107category: '',108label: 'Etc'109});110111112assert.deepStrictEqual(113settingKeyToDisplayFormat('fooBar.somethingElse.etc', 'fooBar'),114{115category: 'Something Else',116label: 'Etc'117});118});119120test('settingKeyToDisplayFormat - known acronym/term', () => {121assert.deepStrictEqual(122settingKeyToDisplayFormat('css.someCssSetting'),123{124category: 'CSS',125label: 'Some CSS Setting'126});127128assert.deepStrictEqual(129settingKeyToDisplayFormat('powershell.somePowerShellSetting'),130{131category: 'PowerShell',132label: 'Some PowerShell Setting'133});134});135136test('parseQuery', () => {137function testParseQuery(input: string, expected: IParsedQuery) {138assert.deepStrictEqual(139parseQuery(input),140expected,141input142);143}144145testParseQuery(146'',147<IParsedQuery>{148tags: [],149extensionFilters: [],150query: '',151featureFilters: [],152idFilters: [],153languageFilter: undefined154});155156testParseQuery(157'@modified',158<IParsedQuery>{159tags: ['modified'],160extensionFilters: [],161query: '',162featureFilters: [],163idFilters: [],164languageFilter: undefined165});166167testParseQuery(168'@tag:foo',169<IParsedQuery>{170tags: ['foo'],171extensionFilters: [],172query: '',173featureFilters: [],174idFilters: [],175languageFilter: undefined176});177178testParseQuery(179'@modified foo',180<IParsedQuery>{181tags: ['modified'],182extensionFilters: [],183query: 'foo',184featureFilters: [],185idFilters: [],186languageFilter: undefined187});188189testParseQuery(190'@tag:foo @modified',191<IParsedQuery>{192tags: ['foo', 'modified'],193extensionFilters: [],194query: '',195featureFilters: [],196idFilters: [],197languageFilter: undefined198});199200testParseQuery(201'@tag:foo @modified my query',202<IParsedQuery>{203tags: ['foo', 'modified'],204extensionFilters: [],205query: 'my query',206featureFilters: [],207idFilters: [],208languageFilter: undefined209});210211testParseQuery(212'test @modified query',213<IParsedQuery>{214tags: ['modified'],215extensionFilters: [],216query: 'test query',217featureFilters: [],218idFilters: [],219languageFilter: undefined220});221222testParseQuery(223'test @modified',224<IParsedQuery>{225tags: ['modified'],226extensionFilters: [],227query: 'test',228featureFilters: [],229idFilters: [],230languageFilter: undefined231});232233testParseQuery(234'query has @ for some reason',235<IParsedQuery>{236tags: [],237extensionFilters: [],238query: 'query has @ for some reason',239featureFilters: [],240idFilters: [],241languageFilter: undefined242});243244testParseQuery(245'@ext:github.vscode-pull-request-github',246<IParsedQuery>{247tags: [],248extensionFilters: ['github.vscode-pull-request-github'],249query: '',250featureFilters: [],251idFilters: [],252languageFilter: undefined253});254255testParseQuery(256'@ext:github.vscode-pull-request-github,vscode.git',257<IParsedQuery>{258tags: [],259extensionFilters: ['github.vscode-pull-request-github', 'vscode.git'],260query: '',261featureFilters: [],262idFilters: [],263languageFilter: undefined264});265testParseQuery(266'@feature:scm',267<IParsedQuery>{268tags: [],269extensionFilters: [],270featureFilters: ['scm'],271query: '',272idFilters: [],273languageFilter: undefined274});275276testParseQuery(277'@feature:scm,terminal',278<IParsedQuery>{279tags: [],280extensionFilters: [],281featureFilters: ['scm', 'terminal'],282query: '',283idFilters: [],284languageFilter: undefined285});286testParseQuery(287'@id:files.autoSave',288<IParsedQuery>{289tags: [],290extensionFilters: [],291featureFilters: [],292query: '',293idFilters: ['files.autoSave'],294languageFilter: undefined295});296297testParseQuery(298'@id:files.autoSave,terminal.integrated.commandsToSkipShell',299<IParsedQuery>{300tags: [],301extensionFilters: [],302featureFilters: [],303query: '',304idFilters: ['files.autoSave', 'terminal.integrated.commandsToSkipShell'],305languageFilter: undefined306});307308testParseQuery(309'@lang:cpp',310<IParsedQuery>{311tags: [],312extensionFilters: [],313featureFilters: [],314query: '',315idFilters: [],316languageFilter: 'cpp'317});318319testParseQuery(320'@lang:cpp,python',321<IParsedQuery>{322tags: [],323extensionFilters: [],324featureFilters: [],325query: '',326idFilters: [],327languageFilter: 'cpp'328});329});330331ensureNoDisposablesAreLeakedInTestSuite();332});333334335