<dateTime>
Тег <dateTime> задает текущее время в рамках тест-кейса.
При запуске тест-кейса следующие методы JS API будут возвращать указанное время:
предупреждение
Если проверки в тест-кейсе зависят от текущего времени, использовать в нем тег
<dateTime> обязательно.
Иначе тест-кейс будет проходить нестабильно.Тело
Внутри тега указываются дата и время в формате yyyy-MM-dd HH:mm:ss.
Часовой пояс не указывается и считается за UTC.
Пример использования
Рассмотрим сценарий, в котором бот по-разному приветствует пользователя в зависимости от времени суток:
# Подключение библиотеки Moment.js из системного проекта zb-common.
require: dateTime/moment.min.js
module = sys.zb-common
theme: /
state: Start
q!: $regex</start>
script:
$temp.hour = moment($jsapi.currentTime()).hour();
if: $temp.hour >= 0 && $temp.hour < 6
a: Доброй ночи!
elseif: $temp.hour >= 6 && $temp.hour < 12
a: Доброе утро!
elseif: $temp.hour >= 12 && $temp.hour < 18
a: Добрый день!
else:
a: Добрый вечер!
Такой сценарий можно покрыть тестом следующего вида:
<test>
<test-case>
<dateTime>2023-06-23 15:30:00</dateTime>
<q>/start</q>
<a>Добрый день!</a>
</test-case>
<test-case>
<dateTime>2023-06-23 21:30:00</dateTime>
<q>/start</q>
<a>Добрый вечер!</a>
</test-case>
</test>