Implement profile tab with Android-aligned flows and OSS upload.
Add personal info page, account switch, real-name auth, withdrawal settings, session cache extensions, AlibabaCloudOSS SPM, and unit tests. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
30
suixinkanTests/RealNameAuthViewModelTests.swift
Normal file
30
suixinkanTests/RealNameAuthViewModelTests.swift
Normal file
@ -0,0 +1,30 @@
|
||||
//
|
||||
// RealNameAuthViewModelTests.swift
|
||||
// suixinkanTests
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import suixinkan
|
||||
|
||||
/// 实名认证 ViewModel 测试。
|
||||
final class RealNameAuthViewModelTests: XCTestCase {
|
||||
func testValidationRequiresSmsCodeWhenNotVerified() {
|
||||
let viewModel = RealNameAuthViewModel()
|
||||
viewModel.updateRealName("张三")
|
||||
viewModel.updateIdCardNo("11010519491231002X")
|
||||
|
||||
XCTAssertEqual(viewModel.validationMessage, "请输入短信验证码")
|
||||
}
|
||||
|
||||
func testIsValidMainlandIDCardNumberChecksChecksum() {
|
||||
XCTAssertTrue(RealNameAuthViewModel.isValidMainlandIDCardNumber("11010519491231002X"))
|
||||
XCTAssertFalse(RealNameAuthViewModel.isValidMainlandIDCardNumber("123"))
|
||||
}
|
||||
|
||||
func testNormalizedIDCardNumberUppercasesSuffix() {
|
||||
XCTAssertEqual(
|
||||
RealNameAuthViewModel.normalizedIDCardNumber("11010519491231002x"),
|
||||
"11010519491231002X"
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user