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("===== ЗАВЕРШЕНИЕ ТЕСТИРОВАНИЯ =====")