Refactor AppServices into assembly, feature facades, and lifecycle coordinator.
Extract dependency wiring and session lifecycle from the container and RootViewController, split NetworkBundle by domain, and add module-level feature services while keeping flat accessors for compatibility. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -28,6 +28,7 @@ final class AppServicesTests: XCTestCase {
|
||||
XCTAssertNotNil(services.context.accountContext)
|
||||
XCTAssertNotNil(services.ui.toastCenter)
|
||||
XCTAssertNotNil(services.runtime.scenicQueueRuntime)
|
||||
XCTAssertIdentical(services.network.apiClient as AnyObject, services.apiClient as AnyObject)
|
||||
}
|
||||
|
||||
/// 扁平属性应转发到对应 bundle,保持现有调用方兼容。
|
||||
@ -35,7 +36,10 @@ final class AppServicesTests: XCTestCase {
|
||||
let services = AppServices(apiClient: APIClient(session: AppServicesRecordingURLSession()))
|
||||
|
||||
XCTAssertIdentical(services.appSession as AnyObject, services.session.appSession as AnyObject)
|
||||
XCTAssertIdentical(services.ordersAPI as AnyObject, services.network.ordersAPI as AnyObject)
|
||||
XCTAssertIdentical(services.authAPI as AnyObject, services.network.account.authAPI as AnyObject)
|
||||
XCTAssertIdentical(services.ordersAPI as AnyObject, services.network.commerce.ordersAPI as AnyObject)
|
||||
XCTAssertIdentical(services.scenicQueueAPI as AnyObject, services.network.operation.scenicQueueAPI as AnyObject)
|
||||
XCTAssertIdentical(services.assetsAPI as AnyObject, services.network.content.assetsAPI as AnyObject)
|
||||
XCTAssertIdentical(services.toastCenter as AnyObject, services.ui.toastCenter as AnyObject)
|
||||
XCTAssertIdentical(services.scenicQueueRuntime as AnyObject, services.runtime.scenicQueueRuntime as AnyObject)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user