Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/test/e2e/markdown.stest.ts
13389 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
import * as path from 'path';
6
import { extractCodeBlocks } from '../../src/util/common/markdown';
7
import { ssuite, stest } from '../base/stest';
8
import { fetchConversationScenarios, Scenario } from './scenarioLoader';
9
import { generateScenarioTestRunner } from './scenarioTest';
10
11
12
13
(function () {
14
ssuite({ title: 'generate', subtitle: 'markdown', location: 'panel' }, (inputPath) => {
15
16
const scenarioFolder = inputPath ?? path.join(__dirname, '..', 'test/scenarios/test-generate-markdown');
17
const scenarios: Scenario[] = fetchConversationScenarios(scenarioFolder);
18
19
// Dynamically create a test case per each entry in the scenarios array
20
for (let i = 0; i < scenarios.length; i++) {
21
const scenario = scenarios[i][0];
22
stest({ description: scenario.name, language: 'markdown' },
23
generateScenarioTestRunner(
24
scenarios[i],
25
async (accessor, question, response) => {
26
const codeBlock = extractCodeBlocks(response).at(0);
27
if (!codeBlock || codeBlock.language !== 'markdown') {
28
return { success: false, errorMessage: 'No markdown code block found in response' };
29
}
30
if (codeBlock.startMarkup !== '````') {
31
return { success: false, errorMessage: 'Did not use 4 backticks' };
32
}
33
return { success: true };
34
}
35
)
36
);
37
}
38
});
39
})();
40
41