Перейти к основному содержимому

<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>