bitrix/test_chat.lua

91 lines
4.0 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local json = require('cjson')
local log = require('utils.log')
local chat = require('bitrix.chat')
-- Настройка логирования
log.outfile = 'logs/tests_chats_live_'..os.date('%Y-%m-%d_%H-%M-%S')..'.log'
log.level = 'trace'
log.info("===== СТАРТ ТЕСТИРОВАНИЯ (РЕЖИМ LIVE) =====")
-- ID чата для тестов. ЗАМЕНИТЕ на ID существующего чата.
-- Это может быть ID группы или открытого чата.
local test_chat_id = 1
local test_user_id_to_add = 2 -- ID пользователя для теста добавления в чат
--=== ТЕСТЫ ===--
local function test_chat_get()
log.info('--- Тест: Получение чата (get) ---')
local result, error_response = chat.get(test_chat_id)
if result and result.id then
log.info(string.format('Тест получения чата: УСПЕШНО. Название: "%s"', result.name or 'N/A'))
else
log.error('Тест получения чата: ПРОВАЛЕНО.')
log.error('Ответ сервера: ' .. json.encode(result))
if error_response then log.error(error_response) end
end
end
local function test_chat_getlist()
log.info('--- Тест: Листинг чатов (getlist) ---')
-- Фильтр: только открытые чаты (тип 'L' - lines/group), созданные недавно.
local two_days_ago_timestamp = os.time() - 2 * 24 * 3600
local date_two_days_ago = os.date("%Y-%m-%d", two_days_ago_timestamp)
local filter = {
TYPE = 'L',
>=DATE_CREATE = date_two_days_ago,
}
local result_list, error_response = chat.getlist({'ID', 'NAME'}, filter, {'ID', 'NAME', 'TYPE'}, nil, 0)
if result_list and #result_list > 0 then
log.info(string.format('Тест листинга чатов: УСПЕШНО. Найдено чатов: %d', #result_list))
elseif result_list and #result_list == 0 then
log.warning('Тест листинга чатов: Чаты не найдены по фильтру.')
else
log.error('Тест листинга чатов: ПРОВАЛЕНО.')
if error_response then log.error(error_response) end
end
end
local function test_chat_message_getList()
log.info('--- Тест: Получение сообщений чата (message.getList) ---')
local result_list, error_response = chat.message.getList(test_chat_id, {'ID'}, {}, 0)
if result_list and #result_list > 0 then
log.info(string.format('Тест получения сообщений: УСПЕШНО. Найдено сообщений: %d', #result_list))
elseif result_list and #result_list == 0 then
log.warning('Тест получения сообщений: Сообщений не найдено.')
else
log.error('Тест получения сообщений: ПРОВАЛЕНО.')
if error_response then log.error(error_response) end
end
end
local function test_chat_message_add()
log.info('--- Тест: Отправка сообщения в чат (message.add) ---')
local new_message_text = 'Привет! Это тестовое сообщение от Lua SDK.'
local result, error_response = chat.message.add(test_chat_id, new_message_text)
if result and result.id then
log.info(string.format('Тест отправки сообщения: УСПЕШНО. ID сообщения: %s', tostring(result.id)))
else
log.error('Тест отправки сообщения: ПРОВАЛЕНО.')
log.error('Ответ сервера: ' .. json.encode(result))
if error_response then log.error(error_response) end
end
end
--=== ЗАПУСК ТЕСТОВ ===--
test_chat_get()
test_chat_getlist()
test_chat_message_getList()
test_chat_message_add() -- <-- ВНИМАНИЕ! Этот тест отправит сообщение в чат!
log.info("===== ЗАВЕРШЕНИЕ ТЕСТИРОВАНИЯ =====")