/
sberpay
/
AgeGate-iOS
Обзор
Документация
Войти
/
sberpay
/
AgeGate-iOS
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
develop
AgeGateSDKTests/AGTStepDecodingTests.swift
40 строк
1 KB
SergeyGladkiy
[0.2.0] БДСЧ сценарий
30 июл 2026, 21:57
30 июл 2026, 21:57
cbcdfcb
Код
Авторство
О чём код?
// // AGTStepDecodingTests.swift // AgeGateSDKTests // // Created by Гладкий Сергей Игоревич on 23.07.2026. // import XCTest @testable import AgeGateSDKDEBUG final class AGTStepDecodingTests: XCTestCase { func testKnownStepDecodes() throws { let step = try AGTStep(name: "consent", payload: [:]) XCTAssertEqual(step, .consent) } func testStepWithUrlPayload() throws { let step = try AGTStep(name: "three_ds", payload: ["url": "https://example.org/3ds"]) guard case .threeDSecure(let url) = step else { return XCTFail("ожидали threeDSecure") } XCTAssertEqual(url.absoluteString, "https://example.org/3ds") } /// Неизвестный шаг означает, что у партнёра устаревшая версия SDK. /// Ошибка должна быть понятной, а не «failed to decode». func testUnknownStepGivesReadableError() { XCTAssertThrowsError(try AGTStep(name: "квантовая_телепортация", payload: [:])) { error in let agtError = error as? AGTError XCTAssertEqual(agtError?.code, .serverError) XCTAssertTrue(agtError?.message?.contains("устарела версия SDK") == true) } } func testMissingUrlIsRejected() { XCTAssertThrowsError(try AGTStep(name: "three_ds", payload: [:])) } }