161 lines
6.3 KiB
Lua
161 lines
6.3 KiB
Lua
--[[
|
||
Тесты для 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)
|
||
|