bitrix/test_user.lua

94 lines
4.0 KiB
Lua
Raw Permalink 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')
-- Настройка логирования
log.outfile = 'logs/tests_user_live_'..os.date('%Y-%m-%d_%H-%M-%S')..'.log'
log.level = 'trace'
log.info("===== СТАРТ ТЕСТИРОВАНИЯ (РЕЖИМ LIVE) =====")
-- Подключаем модуль. Настройки подключения берутся из bitrix.api
local user = require('bitrix.user')
-- ID пользователя для тестов. Обычно 1 - это администратор.
local test_user_id = 1
--=== ТЕСТЫ ===--
local function test_user_get()
log.info('--- Тест: Получение пользователя (get) ---')
local result, error_response = user.get(test_user_id)
if result and result.users and result.users[1] then
local user_data = result.users[1]
log.info(string.format('Тест получения пользователя: УСПЕШНО. Имя: "%s %s"', user_data.NAME or '', user_data.LAST_NAME or ''))
else
log.error('Тест получения пользователя: ПРОВАЛЕНО.')
log.error('Ответ сервера: ' .. json.encode(result))
if error_response then
log.error('Ошибка: ' .. json.encode(error_response))
end
end
end
local function test_user_getlist()
log.info('--- Тест: Листинг пользователей (getlist) ---')
-- Фильтр: активные пользователи, у которых есть email
local filter = {
ACTIVE = 'Y',
EMAIL = '%@%'
}
local result_list, error_response = user.getlist({'LAST_NAME', 'NAME'}, filter, {'ID', 'NAME', 'LAST_NAME', 'EMAIL'}, nil, 0)
if result_list and result_list.users and #result_list.users > 0 then
log.info(string.format('Тест листинга пользователей: УСПЕШНО. Найдено пользователей: %d', #result_list.users))
elseif result_list and result_list.users and #result_list.users == 0 then
log.warning('Тест листинга пользователей: Пользователи не найдены по фильтру.')
else
log.error('Тест листинга пользователей: ПРОВАЛЕНО.')
if error_response then
log.error('Ответ сервера: ' .. json.encode(error_response))
end
end
end
local function test_user_current()
log.info('--- Тест: Получение текущего пользователя (current) ---')
local result, error_response = user.current()
if result and result.ID then
log.info(string.format('Тест текущего пользователя: УСПЕШНО. Вы вошли как: "%s %s"', result.NAME or '', result.LAST_NAME or ''))
else
log.error('Тест текущего пользователя: ПРОВАЛЕНО.')
if error_response then
log.error('Ответ сервера: ' .. json.encode(error_response))
end
end
end
local function test_user_avatar_get()
log.info('--- Тест: Получение аватара пользователя (avatar.get) ---')
local result, error_response = user.avatar.get(test_user_id, 'big') -- Получаем большой аватар
if result and result.result then
log.info('Тест получения аватара: УСПЕШНО.')
-- Результат обычно содержит URL до изображения
log.debug('URL аватара: ' .. tostring(result.result))
else
log.error('Тест получения аватара: ПРОВАЛЕНО.')
if error_response then
log.error('Ответ сервера: ' .. json.encode(error_response))
end
end
end
--=== ЗАПУСК ТЕСТОВ ===--
test_user_get()
test_user_getlist()
test_user_current()
test_user_avatar_get()
log.info("===== ЗАВЕРШЕНИЕ ТЕСТИРОВАНИЯ =====")