From f54ea595eb5143a9afa1cd5e98174452c17e39f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0=20=D0=A4=D0=B0?= =?UTF-8?q?=D1=80=D0=B1=D0=B5=D1=80?= Date: Sat, 4 Apr 2026 11:40:52 +0400 Subject: [PATCH] tests --- README.md | 18 --------- bitrix/department.lua | 30 +++++++------- bitrix/user.lua | 14 +------ test_department.lua | 94 +++++-------------------------------------- test_user.lua | 41 +++++-------------- 5 files changed, 38 insertions(+), 159 deletions(-) diff --git a/README.md b/README.md index 1623324..1b902da 100644 --- a/README.md +++ b/README.md @@ -1643,24 +1643,6 @@ user.field.delete(id) user.field.getlist(order, filter) ``` -#### Получить статус пользователя `user.status.get` - -[user.status.get](https://apidocs.bitrix24.ru/api-reference/user/user-status-get.html) - -```lua -user.status.get(user_id) -``` - -#### Получить аватар пользователя `user.avatar.get` - -[user.avatar.get](https://apidocs.bitrix24.ru/api-reference/user/user-avatar-get.html) - -```lua -user.avatar.get(user_id, size) -- size: 'small', 'big' или nil (оригинал) -``` - -Конечно. Вот документация для модуля Chats в формате Markdown, отформатированная согласно вашим требованиям (пустая строка после подзаголовков). - ``` # Чаты diff --git a/bitrix/department.lua b/bitrix/department.lua index d546db5..bab6a84 100644 --- a/bitrix/department.lua +++ b/bitrix/department.lua @@ -1,36 +1,36 @@ local _M = require('bitrix.api') local array = require('utils.array') -_M.departments = {} +_M.department = {} --[[ - Департаменты (departments.*) + Департаменты (department.*) --]] --- https://apidocs.bitrix24.ru/api-reference/departments/departments-add.html +-- https://apidocs.bitrix24.ru/api-reference/department/department-add.html -function _M.departments.add(fields) +function _M.department.add(fields) return _M.post('department.add', { ['fields'] = fields }) end --- https://apidocs.bitrix24.ru/api-reference/departments/departments-update.html +-- https://apidocs.bitrix24.ru/api-reference/department/department-update.html -function _M.departments.update(id, fields) +function _M.department.update(id, fields) return _M.post('department.update', { ['ID'] = id, ['fields'] = fields }) end --- https://apidocs.bitrix24.ru/api-reference/departments/departments-get.html +-- https://apidocs.bitrix24.ru/api-reference/department/department-get.html -function _M.departments.get(id) +function _M.department.get(id) return _M.post('department.get', { ['ID'] = id }) end --- https://apidocs.bitrix24.ru/api-reference/departments/departments-getlist.html +-- https://apidocs.bitrix24.ru/api-reference/department/department-getlist.html -function _M.departments.getlist(order, filter, select, start) +function _M.department.getlist(order, filter, select, start) select = select or {'*'} return _M.fetchAllPages(function(startPos) - return _M.post('department.getlist', { + return _M.post('department.get', { ['order'] = order, ['filter'] = filter, ['select'] = select, @@ -39,15 +39,15 @@ function _M.departments.getlist(order, filter, select, start) end, start) end --- https://apidocs.bitrix24.ru/api-reference/departments/departments-fields.html +-- https://apidocs.bitrix24.ru/api-reference/department/department-fields.html -function _M.departments.fields() +function _M.department.fields() return _M.post('department.fields', {}) end --- https://apidocs.bitrix24.ru/api-reference/departments/departments-delete.html +-- https://apidocs.bitrix24.ru/api-reference/department/department-delete.html -function _M.departments.delete(id) +function _M.department.delete(id) return _M.post('department.delete', { ['ID'] = id }) end diff --git a/bitrix/user.lua b/bitrix/user.lua index 728568e..45b8e47 100644 --- a/bitrix/user.lua +++ b/bitrix/user.lua @@ -20,7 +20,7 @@ end function _M.user.getlist(order, filter, select, params, start) select = select or {'*'} return _M.fetchAllPages(function(startPos) - return _M.post('user.getlist', { + return _M.post('user.get', { ['order'] = order, ['filter'] = filter, ['select'] = select, @@ -86,17 +86,5 @@ function _M.user.status.get(user_id) return _M.post('user.status.get', { ['USER_ID'] = user_id }) end ---[[ - Аватары (user.avatar.*) ---]] - --- https://apidocs.bitrix24.ru/api-reference/user/user-avatar-get.html - -function _M.user.avatar.get(user_id, size) - -- size может быть 'small', 'big' или nil (оригинал) - local params = { ['USER_ID'] = user_id } - if size then params['SIZE'] = size end - return _M.post('user.avatar.get', params) -end return _M diff --git a/test_department.lua b/test_department.lua index 6515462..05996f7 100644 --- a/test_department.lua +++ b/test_department.lua @@ -1,18 +1,18 @@ local json = require('cjson') local log = require('utils.log') -local departments = require('bitrix.departments') +local department = require('bitrix.department') -- Настройка логирования -log.outfile = 'logs/tests_departments_live_'..os.date('%Y-%m-%d_%H-%M-%S')..'.log' +log.outfile = 'logs/tests_department_live_'..os.date('%Y-%m-%d_%H-%M-%S')..'.log' log.level = 'trace' log.info("===== СТАРТ ТЕСТИРОВАНИЯ (РЕЖИМ LIVE) =====") --=== ТЕСТЫ ===-- -local function test_departments_fields() +local function test_department_fields() log.info('--- Тест: Получение справочника полей (fields) ---') - local result, error_response = departments.departments.fields() + local result, error_response = department.department.fields() if result then log.info('Тест полей: УСПЕШНО.') @@ -23,96 +23,24 @@ local function test_departments_fields() end end -local function test_departments_add() - log.info('--- Тест: Создание подразделения (add) ---') - - -- Создадим тестовый отдел с уникальным именем - local dept_name = "Test Dept - " .. os.date("%H-%M-%S") - local fields = { - NAME = dept_name, - SORT = 100, - PARENT_ID = 1 -- Родительский отдел (обычно 1 - компания) - } - - local result, error_response = departments.departments.add(fields) - - if result and result.ID then - log.info(string.format('Тест создания: УСПЕШНО. ID нового отдела: %d', result.ID)) - return result.ID -- Возвращаем ID для тестов обновления и удаления - else - log.error('Тест создания: ПРОВАЛЕНО.') - if error_response then log.error(error_response) end - return nil - end -end - -local function test_departments_getlist(dept_name) - -- Этот тест запускается после создания отдела, чтобы найти его в списке - if not dept_name then return end +local function test_department_getlist() log.info('--- Тест: Получение списка подразделений (getlist) ---') + + local filter = {} - -- Используем фильтр по имени, чтобы найти наш только что созданный отдел - local filter = { - NAME = dept_name - } - - local result_list, error_response = departments.departments.getlist({'NAME'}, filter, {'ID', 'NAME'}, 0) - + local result_list, error_response = department.department.getlist({'NAME'}, filter, {'ID', 'NAME'}, 0) + print(json.encode(result_list)) if result_list and #result_list > 0 then log.info(string.format('Тест getlist: УСПЕШНО. Найдено отделов по фильтру: %d', #result_list)) - - -- Проверим, что имя первого найденного отдела совпадает с искомым - if result_list[1].NAME == dept_name then - log.debug('Проверка имени: УСПЕШНО. Найден отдел: ' .. result_list[1].NAME) - else - log.warning('Найден отдел, но имя не совпадает с искомым.') - end else log.error('Тест getlist: ПРОВАЛЕНО. Отдел не найден в списке.') if error_response then log.error(error_response) end end end -local function test_departments_update(new_dept_id) - if not new_dept_id then return end - - log.info('--- Тест: Обновление подразделения (update) ---') - - local fields = { - NAME = "Updated Test Dept - " .. os.date("%H-%M-%S") -- Меняем имя - } - - local result, error_response = departments.departments.update(new_dept_id, fields) - - if result and result.result then - log.info('Тест обновления: УСПЕШНО.') - else - log.error('Тест обновления: ПРОВАЛЕНО.') - if error_response then log.error(error_response) end - end -end - -local function test_departments_delete(new_dept_id) - if not new_dept_id then return end - - log.info('--- Тест: Удаление подразделения (delete) ---') - - local result, error_response = departments.departments.delete(new_dept_id) - - if result and result.result then - log.info('Тест удаления: УСПЕШНО.') - else - log.error('Тест удаления: ПРОВАЛЕНО.') - if error_response then log.error(error_response) end - end - --=== ЗАПУСК ТЕСТОВ ===-- -test_departments_fields() -local dept_name_for_list = "Test Dept - " .. os.date("%H-%M-%S") -- Сохраняем имя для теста getlist -local new_dept_id = test_departments_add() -test_departments_getlist(dept_name_for_list) -- <-- ЗДЕСЬ ВЫЗОВ getlist -test_departments_update(new_dept_id) -test_departments_delete(new_dept_id) +test_department_fields() +test_department_getlist() -- <-- ЗДЕСЬ ВЫЗОВ getlist log.info("===== ЗАВЕРШЕНИЕ ТЕСТИРОВАНИЯ =====") diff --git a/test_user.lua b/test_user.lua index a707ab4..f270eb3 100644 --- a/test_user.lua +++ b/test_user.lua @@ -1,5 +1,6 @@ local json = require('cjson') local log = require('utils.log') +local user = require('bitrix.user') -- Настройка логирования log.outfile = 'logs/tests_user_live_'..os.date('%Y-%m-%d_%H-%M-%S')..'.log' @@ -7,8 +8,6 @@ log.level = 'trace' log.info("===== СТАРТ ТЕСТИРОВАНИЯ (РЕЖИМ LIVE) =====") --- Подключаем модуль. Настройки подключения берутся из bitrix.api -local user = require('bitrix.user') -- ID пользователя для тестов. Обычно 1 - это администратор. local test_user_id = 1 @@ -17,10 +16,10 @@ local test_user_id = 1 local function test_user_get() log.info('--- Тест: Получение пользователя (get) ---') - local result, error_response = user.get(test_user_id) + local result, error_response = user.user.get(test_user_id) - if result and result.users and result.users[1] then - local user_data = result.users[1] + if result and result[1] then + local user_data = result[1] log.info(string.format('Тест получения пользователя: УСПЕШНО. Имя: "%s %s"', user_data.NAME or '', user_data.LAST_NAME or '')) else log.error('Тест получения пользователя: ПРОВАЛЕНО.') @@ -37,14 +36,14 @@ local function test_user_getlist() -- Фильтр: активные пользователи, у которых есть email local filter = { ACTIVE = 'Y', - EMAIL = '%@%' + 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 + local result_list, error_response = user.user.getlist({'LAST_NAME', 'NAME'}, filter, {'ID', 'NAME', 'LAST_NAME', 'EMAIL'}, nil, 0) + print(json.encode(result_list)) + 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('Тест листинга пользователей: ПРОВАЛЕНО.') @@ -56,7 +55,7 @@ end local function test_user_current() log.info('--- Тест: Получение текущего пользователя (current) ---') - local result, error_response = user.current() + local result, error_response = user.user.current() if result and result.ID then log.info(string.format('Тест текущего пользователя: УСПЕШНО. Вы вошли как: "%s %s"', result.NAME or '', result.LAST_NAME or '')) @@ -68,26 +67,8 @@ local function test_user_current() 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("===== ЗАВЕРШЕНИЕ ТЕСТИРОВАНИЯ =====")