UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

112 lines (111 loc) 5.13 kB
/** * Модуль для тестирования вашего приложения. * Предоставляет инструменты для отладки и тестирования функциональности итогового приложения */ 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>; }