Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/base/test/browser/iconLabels.test.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { isHTMLElement } from '../../browser/dom.js';
8
import { renderLabelWithIcons } from '../../browser/ui/iconLabel/iconLabels.js';
9
import { ensureNoDisposablesAreLeakedInTestSuite } from '../common/utils.js';
10
11
suite('renderLabelWithIcons', () => {
12
13
test('no icons', () => {
14
const result = renderLabelWithIcons(' hello World .');
15
16
assert.strictEqual(elementsToString(result), ' hello World .');
17
});
18
19
test('icons only', () => {
20
const result = renderLabelWithIcons('$(alert)');
21
22
assert.strictEqual(elementsToString(result), '<span class="codicon codicon-alert"></span>');
23
});
24
25
test('icon and non-icon strings', () => {
26
const result = renderLabelWithIcons(` $(alert) Unresponsive`);
27
28
assert.strictEqual(elementsToString(result), ' <span class="codicon codicon-alert"></span> Unresponsive');
29
});
30
31
test('multiple icons', () => {
32
const result = renderLabelWithIcons('$(check)$(error)');
33
34
assert.strictEqual(elementsToString(result), '<span class="codicon codicon-check"></span><span class="codicon codicon-error"></span>');
35
});
36
37
test('escaped icons', () => {
38
const result = renderLabelWithIcons('\\$(escaped)');
39
40
assert.strictEqual(elementsToString(result), '$(escaped)');
41
});
42
43
test('icon with animation', () => {
44
const result = renderLabelWithIcons('$(zip~anim)');
45
46
assert.strictEqual(elementsToString(result), '<span class="codicon codicon-zip codicon-modifier-anim"></span>');
47
});
48
49
const elementsToString = (elements: Array<HTMLElement | string>): string => {
50
return elements
51
.map(elem => isHTMLElement(elem) ? elem.outerHTML : elem)
52
.reduce((a, b) => a + b, '');
53
};
54
55
ensureNoDisposablesAreLeakedInTestSuite();
56
});
57
58