diff --git a/apps/doc-approval/DocApprovalCore/Sources/DocApprovalCore/PresentationMapper.swift b/apps/doc-approval/DocApprovalCore/Sources/DocApprovalCore/PresentationMapper.swift index 64d33c5..a8a1991 100644 --- a/apps/doc-approval/DocApprovalCore/Sources/DocApprovalCore/PresentationMapper.swift +++ b/apps/doc-approval/DocApprovalCore/Sources/DocApprovalCore/PresentationMapper.swift @@ -10,7 +10,7 @@ public enum PresentationState: String, Equatable, Sendable { case error } -public struct PresentationSnapshot: Equatable, Sendable { +public struct PresentationSnapshot: Equatable, @unchecked Sendable { public let state: PresentationState public let errorMessage: String? public let output: Any? @@ -31,7 +31,7 @@ public enum CapabilityPhase: String, Equatable, Sendable { case result } -public struct CapabilityProgressStep: Equatable, Sendable { +public struct CapabilityProgressStep: Equatable, @unchecked Sendable { public let capabilityId: String public let phase: CapabilityPhase public let sequence: UInt64 @@ -61,7 +61,7 @@ public struct CapabilityProgressStep: Equatable, Sendable { } /// Minimal embedder event fields required by the mapper. -public struct EmbedderEventLike: Equatable, Sendable { +public struct EmbedderEventLike: Equatable, @unchecked Sendable { public let eventType: String public let sequence: UInt64 public let data: [String: Any] diff --git a/apps/doc-approval/DocApprovalCore/Tests/DocApprovalCoreTests/DocApprovalCoreTests.swift b/apps/doc-approval/DocApprovalCore/Tests/DocApprovalCoreTests/DocApprovalCoreTests.swift index 893e985..3ae85e6 100644 --- a/apps/doc-approval/DocApprovalCore/Tests/DocApprovalCoreTests/DocApprovalCoreTests.swift +++ b/apps/doc-approval/DocApprovalCore/Tests/DocApprovalCoreTests/DocApprovalCoreTests.swift @@ -80,13 +80,18 @@ final class AppStateViewModelTests: XCTestCase { XCTAssertNotNil(vm.sessionId) } - func testResetReturnsToIdle() throws { + func testResetReturnsToIdle() async throws { let host = try EmbeddedHost.createTestHost(output: sampleOutput) let vm = AppStateViewModel(host: host, workspaceId: "local-default") - vm.errorMessage = "boom" + vm.document = "document text" + vm.submit() + try await Task.sleep(nanoseconds: 200_000_000) + XCTAssertEqual(vm.currentState, "completed") vm.reset() XCTAssertEqual(vm.currentState, "idle") XCTAssertNil(vm.errorMessage) + XCTAssertNil(vm.output) + XCTAssertEqual(vm.presentationState, .idle) } }