Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/src/extension/test/node/utils.fileTree.spec.ts
13399 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 * as assert from 'assert';
7
import { suite, test } from 'vitest';
8
import { fileTreePartToMarkdown } from '../../../util/common/fileTree';
9
import { URI } from '../../../util/vs/base/common/uri';
10
import { ChatResponseFileTreePart } from '../../../vscodeTypes';
11
12
13
suite('fileTreeParsing', () => {
14
test('Simple File tree', () => {
15
const baseUri = URI.parse('file://foo/projectName',);
16
const fileTreePart: ChatResponseFileTreePart = {
17
baseUri: baseUri,
18
value: [
19
{
20
name: 'src',
21
children: [
22
{
23
name: 'file1.ts'
24
},
25
{
26
name: 'file2.ts'
27
},
28
]
29
},
30
{
31
name: 'package.json'
32
}
33
]
34
};
35
36
const fileTreeMarkdown = fileTreePartToMarkdown(fileTreePart);
37
assert.equal(fileTreeMarkdown, '```filetree\nprojectName\n├── src\n| ├── file1.ts\n| └── file2.ts\n└── package.json\n```\n');
38
});
39
40
test('File tree', () => {
41
const baseUri = URI.parse('file://foo/my-vscode-extension',);
42
const fileTreePart: ChatResponseFileTreePart = {
43
baseUri: baseUri,
44
value: [
45
{
46
name: '.vscode',
47
children: [
48
{
49
name: 'launch.json'
50
},
51
{
52
name: 'tasks.json'
53
},
54
]
55
},
56
{
57
name: 'src',
58
children: [
59
{
60
name: 'extensions.ts'
61
},
62
]
63
},
64
{
65
name: 'test',
66
children: [
67
{
68
name: 'extension.test.ts'
69
}
70
]
71
},
72
{
73
name: 'package.json'
74
},
75
{
76
name: 'tsconfig.json'
77
},
78
{
79
name: 'README.md'
80
}
81
]
82
};
83
84
const fileTreeMarkdown = fileTreePartToMarkdown(fileTreePart);
85
assert.equal(fileTreeMarkdown, '```filetree\nmy-vscode-extension\n├── .vscode\n| ├── launch.json\n| └── tasks.json\n├── src\n| └── extensions.ts\n├── test\n| └── extension.test.ts\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n');
86
});
87
});
88
89