umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
112 lines (111 loc) • 5.13 kB
TypeScript
/**
* Модуль для тестирования вашего приложения.
* Предоставляет инструменты для отладки и тестирования функциональности итогового приложения
*/
import { TAppType } from './interfaces/IAppContext';
import { BotController } from '../controller';
import { Bot, TBotControllerClass, TRunResult } from './Bot';
/**
* Функция для получения конфигурации пользовательского приложения
*
* @callback TUserBotConfigCb
* @param query - Пользовательский запрос
* @param userId - Идентификатор пользователя
* @param count - Номер сообщения в диалоге
* @returns Конфигурация для пользовательского приложения
*/
export type TUserBotConfigCb = (query: string, userId: string, count: number) => unknown;
/**
* Параметры для тестирования приложения.
* Определяют поведение и отображение результатов тестирования
*/
export interface IBotTestParams {
/**
* Отображать полный ответ навыка
* @defaultValue false
*/
isShowResult?: boolean;
/**
* Отображать данные из хранилища
* @defaultValue false
*/
isShowStorage?: boolean;
/**
* Отображать время выполнения запроса
* @defaultValue true
*/
isShowTime?: boolean;
}
/**
* Класс для тестирования созданного навыка/бота через консольный интерфейс. Позволяет протестировать логику вашего приложения без предварительной публикации.
* Также предоставляет интерактивный режим для отладки и тестирования функциональности.
* Для того чтобы протестировать необходимую платформу, необходимо указать `appType`, в случае если значение не указано или установлено в auto, то для тестирования будет использоваться первая платформа.
*
* @extends Bot
*
* @example
* ```ts
* const botTest = new BotTest();
* botTest.setPlatformParams({
* intents: [{
* name: 'greeting',
* slots: ['привет', 'здравствуйте']
* }]
* });
* botTest.initBotController(MyController);
*
* // Запуск тестирования
* await botTest.test({
* isShowResult: true,
* isShowStorage: true
* });
* ```
*/
export declare class BotTest extends Bot {
#private;
protected _botController: BotController;
constructor(type?: TAppType, botController?: TBotControllerClass);
initBotController(fn: TBotControllerClass): this;
/**
* Запускает интерактивное тестирование приложения.
* Позволяет вводить команды и получать ответы в консоли.
* Также, если не задан `setAppMode` равный `strict_prod`, то режим автоматически выставится в `dev`
*
* @param {IBotTestParams} [params] - Параметры тестирования
* @returns {Promise<void>}
*
* @example
* ```ts
* // Базовое тестирование
* await botTest.test();
*
* // Расширенное тестирование с отображением всех данных
* await botTest.test({
* isShowResult: true,
* isShowStorage: true,
* isShowTime: true
* });
* ```
*/
test(params?: IBotTestParams): Promise<void>;
protected _clearState(): void;
/**
* Формирует конфигурацию для тестирования конкретной платформы.
* Создает структуру данных, соответствующую формату выбранной платформы
*
* @param query - Пользовательский запрос
* @param count - Номер сообщения в диалоге
* @param state - Данные из хранилища
* @returns Конфигурация для выбранной платформы
*
* @protected
*/
protected getSkillContent(query: string, count: number, state: Record<string, unknown> | string): unknown;
/**
* Запуск обработку запроса
* Не рекомендуется вызывать самостоятельно, ответственность за вызов метода лежит за классом.
* @param appType
* @param content
*/
run(appType?: TAppType | null, content?: string | null): Promise<TRunResult>;
}