import XCTest @testable import DocsKit final class DocumentPublicationTests: XCTestCase { @MainActor func testConcurrentRequestsCannotRetireAnUnpublishedSource() async { let publication = DocumentPublication() var release: CheckedContinuation? var calls = 0, inside = 0, maximum = 0 let first = Task { @MainActor in await publication.run { calls += 1; inside += 1; maximum = max(maximum, inside) if calls == 1 { await withCheckedContinuation { release = $0 } } inside -= 1 } } while release == nil { await Task.yield() } let second = Task { @MainActor in await publication.run { inside += 1; maximum = max(maximum, inside); inside -= 1 } } await second.value XCTAssertEqual(maximum, 1) XCTAssertEqual(calls, 1) release?.resume() await first.value XCTAssertEqual(maximum, 1) XCTAssertEqual(calls, 2, "A request arriving while awaiting must publish fresh state afterward") } }