zcb/test.lua
2026-04-04 23:19:26 +04:00

161 lines
6.3 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.

--[[
Тесты для 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)