完善任务流程、键盘适配与页面交互

This commit is contained in:
2026-07-10 15:56:15 +08:00
parent f88a85a807
commit ab5220e460
189 changed files with 16779 additions and 1038 deletions

View File

@ -3,6 +3,7 @@
// suixinkanTests
//
import UIKit
import XCTest
@testable import suixinkan
@ -144,3 +145,36 @@ final class AllFunctionsViewModelTests: XCTestCase {
XCTAssertEqual(viewModel.commonMenus.map(\.uri), ["location_report", "report_photographer"])
}
}
///
@MainActor
final class AllFunctionMenuCellTests: XCTestCase {
func testAddStyleUsesWholeCellAsAccessibleActionWithoutNestedButton() {
let cell = AllFunctionMenuCell(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let menu = HomeMenuItem(uri: "wallet", title: "钱包", iconName: "wallet.pass")
cell.apply(menu: menu, actionStyle: .add)
XCTAssertTrue(cell.isAccessibilityElement)
XCTAssertEqual(cell.accessibilityLabel, "钱包")
XCTAssertEqual(cell.accessibilityHint, "添加到常用应用")
XCTAssertTrue(cell.accessibilityTraits.contains(.button))
XCTAssertFalse(containsButton(in: cell.contentView))
}
func testRemoveStyleDescribesWholeCellRemoveAction() {
let cell = AllFunctionMenuCell(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let menu = HomeMenuItem(uri: "wallet", title: "钱包", iconName: "wallet.pass")
cell.apply(menu: menu, actionStyle: .remove)
XCTAssertEqual(cell.accessibilityHint, "移出常用应用")
XCTAssertTrue(cell.accessibilityTraits.contains(.button))
XCTAssertFalse(containsButton(in: cell.contentView))
}
private func containsButton(in view: UIView) -> Bool {
view is UIButton || view.subviews.contains(where: containsButton(in:))
}
}