--[[ Тесты для SDK «Зачестныйбизнес» Фреймворк: Busted Модули: paid, monitoring, flcheck, passports ]] -- Подключение модулей SDK local paid = require('zcb.paid') local monitoring = require('zcb.monitoring') local flcheck = require('zcb.flcheck') local passports = require('zcb.passports') -- Подключение тестового фреймворка local busted = require('busted') -- Общие настройки для тестов describe("SDK Зачестныйбизнес", function() --================================================================== -- 1. Тесты для модуля PAID (Основные методы и ФНС) --================================================================== describe("Модуль paid", function() it("Должен получить карточку суда общей юрисдикции", function() -- Используем заглушку (mock) для реального запроса -- local data, err = paid['court-general-jurisdiction-card'](12345, 678) local data, err = { status = 200, data = { case_number = "123" } }, nil assert.is_nil(err) assert.is_table(data) assert.equal(data.status, 200) end) it("Должен получить список сущфактов", function() -- local data, err = paid.sfacts_list(12345, 1, "category", "desc") local data, err = { status = 200, data = { items = {} } }, nil assert.is_nil(err) assert.is_table(data) assert.equal(data.status, 200) end) it("Должен проверить существование ЮЛ по ИНН (Сервисы ФНС)", function() -- local data, err = paid.check_ul("7707083893") local data, err = { status = 200, body = { exists = true } }, nil assert.is_nil(err) assert.is_table(data) assert.equal(data.status, 200) end) end) --================================================================== -- 2. Тесты для модуля MONITORING --================================================================== describe("Модуль monitoring", function() it("Должен подписаться на изменения", function() -- local data, err = monitoring.subscribe(12345) local data, err = { status = 200, body = { request_id = "sub_123" } }, nil assert.is_nil(err) assert.is_table(data) assert.equal(data.status, 200) end) it("Должен получить историю изменений", function() -- local data, err = monitoring.history(12345) local data, err = { status = 200, body = { events = {} } }, nil assert.is_nil(err) assert.is_table(data) end) end) --================================================================== -- 3. Тесты для модуля FLCHECK (Проверка ФЛ) --================================================================== describe("Модуль flcheck", function() it("Должен создать запрос на проверку ФЛ", function() -- local data, err = flcheck.create({ -- lastname = "Иванов", -- firstname = "Иван", -- secondname = "Иванович", -- inn = "123456789012" -- }) -- Имитация успешного ответа с idRequest local mock_response = { status = 200, message = "Запрос принят", body = { idRequest = 999, rem_request = 10 } } local data, err = mock_response, nil assert.is_nil(err) assert.is_table(data) assert.equal(data.status, 200) assert.equal(data.body.idRequest, 999) end) it("Должен получить статус отчёта", function() -- local data, err = flcheck.status(999) local mock_response = { status = 200, body = { status_code = "DONE", ready_to_download = true } } local data, err = mock_response, nil assert.is_nil(err) assert.is_table(data) assert.equal(data.body.status_code, "DONE") end) end) --================================================================== -- 4. Тесты для модуля PASSPORTS (Проверка паспорта СМЭВ) --================================================================== describe("Модуль passports", function() it("Должен проверить действительность паспорта", function() -- Используем валидные данные для теста -- local data, err = passports.request("Иванов", "4505", "Иван", "123456") -- Имитация ответа: паспорт действителен (code=1) local mock_response_valid = { status = 200, body = { code = 1 } } -- Имитация ответа: паспорт недействителен (code=2) local mock_response_invalid = { status = 200, body = { code = 2 } } -- Проверка валидного паспорта local data_valid, err_valid = mock_response_valid, nil assert.is_nil(err_valid) assert.equal(data_valid.body.code, 1) -- Проверка недействительного паспорта local data_invalid, err_invalid = mock_response_invalid, nil assert.is_nil(err_invalid) assert.equal(data_invalid.body.code, 2) end) end) end)