Path: blob/main/extensions/copilot/test/e2e/markdown.stest.ts
13389 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*--------------------------------------------------------------------------------------------*/4import * as path from 'path';5import { extractCodeBlocks } from '../../src/util/common/markdown';6import { ssuite, stest } from '../base/stest';7import { fetchConversationScenarios, Scenario } from './scenarioLoader';8import { generateScenarioTestRunner } from './scenarioTest';9101112(function () {13ssuite({ title: 'generate', subtitle: 'markdown', location: 'panel' }, (inputPath) => {1415const scenarioFolder = inputPath ?? path.join(__dirname, '..', 'test/scenarios/test-generate-markdown');16const scenarios: Scenario[] = fetchConversationScenarios(scenarioFolder);1718// Dynamically create a test case per each entry in the scenarios array19for (let i = 0; i < scenarios.length; i++) {20const scenario = scenarios[i][0];21stest({ description: scenario.name, language: 'markdown' },22generateScenarioTestRunner(23scenarios[i],24async (accessor, question, response) => {25const codeBlock = extractCodeBlocks(response).at(0);26if (!codeBlock || codeBlock.language !== 'markdown') {27return { success: false, errorMessage: 'No markdown code block found in response' };28}29if (codeBlock.startMarkup !== '````') {30return { success: false, errorMessage: 'Did not use 4 backticks' };31}32return { success: true };33}34)35);36}37});38})();394041