localhost1978's picture
download
raw
8.05 kB
#if os(macOS)
import Foundation
import SSK_Abstractions
import XCTest
@testable import SSK_Foundation
final class DocGenProcessWorkerExecutorTests: XCTestCase {
func testSemanticResourcesHaveFixedLogicalMetadata() {
XCTAssertEqual(
DocGenResource.doccIndex.uri.stringValue,
"ssk://spec:SSK-DocGen-P0/ledger/documentation/docc-index"
)
XCTAssertEqual(DocGenResource.doccIndex.mimeType, "application/json")
XCTAssertEqual(
DocGenResource.codebaseGraph.uri.stringValue,
"ssk://spec:SSK-DocGen-P0/ledger/documentation/codebase-graph"
)
XCTAssertEqual(DocGenResource.codebaseGraph.mimeType, "application/json")
XCTAssertEqual(
DocGenResource.masterMarkdownIndex.uri.stringValue,
"ssk://spec:SSK-DocGen-P0/ledger/documentation/master-index"
)
XCTAssertEqual(DocGenResource.masterMarkdownIndex.mimeType, "text/markdown")
}
func testSemanticRequestEncodingDoesNotContainAPathOrURI() throws {
let data = try JSONEncoder().encode(
DocGenWorkerRequest(resource: .doccIndex)
)
let object = try XCTUnwrap(
JSONSerialization.jsonObject(with: data) as? [String: String]
)
XCTAssertEqual(object, ["resource": "doccIndex"])
}
func testWireRequestMapsEachSemanticResourceToThePrivateWorkerURI() throws {
let expected: [(DocGenResource, String)] = [
(.doccIndex, "file:///SSK_Ledger_Vault/docc_index.json"),
(.codebaseGraph, "file:///SSK_Ledger_Vault/graph.json"),
(.masterMarkdownIndex, "file:///SSK_Ledger_Vault/DocC_Index.md"),
]
for (resource, uri) in expected {
let data = try DocGenWorkerWireProtocol.encode(
DocGenWorkerRequest(resource: resource),
identifier: "request-1"
)
let object = try XCTUnwrap(
JSONSerialization.jsonObject(with: data) as? [String: Any]
)
let params = try XCTUnwrap(object["params"] as? [String: String])
XCTAssertEqual(object["method"] as? String, "resources/read")
XCTAssertEqual(params["uri"], uri)
}
}
func testWireResponseAcceptsExactPrivateMetadataAndReturnsLogicalMetadata() throws {
let data = Data(
#"{"jsonrpc":"2.0","id":"request-1","result":{"contents":[{"uri":"file:///SSK_Ledger_Vault/docc_index.json","mimeType":"application/json","text":"verified text"}]}}"#.utf8
)
let response = try DocGenWorkerWireProtocol.decode(
data,
request: DocGenWorkerRequest(resource: .doccIndex),
identifier: "request-1"
)
XCTAssertEqual(response.resource, .doccIndex)
XCTAssertEqual(response.uri, DocGenResource.doccIndex.uri)
XCTAssertEqual(response.mimeType, "application/json")
XCTAssertEqual(response.text, "verified text")
}
func testWireResponseRejectsUnexpectedPrivateURI() throws {
let data = Data(
#"{"jsonrpc":"2.0","id":"request-1","result":{"contents":[{"uri":"file:///untrusted","mimeType":"application/json","text":"value"}]}}"#.utf8
)
XCTAssertThrowsError(
try DocGenWorkerWireProtocol.decode(
data,
request: DocGenWorkerRequest(resource: .doccIndex),
identifier: "request-1"
)
) { error in
XCTAssertEqual(error as? DocGenWorkerError, .malformedResponse)
}
}
func testWireResponseRejectsUnexpectedMIMEType() throws {
let data = Data(
#"{"jsonrpc":"2.0","id":"request-1","result":{"contents":[{"uri":"file:///SSK_Ledger_Vault/docc_index.json","mimeType":"application/octet-stream","text":"value"}]}}"#.utf8
)
XCTAssertThrowsError(
try DocGenWorkerWireProtocol.decode(
data,
request: DocGenWorkerRequest(resource: .doccIndex),
identifier: "request-1"
)
) { error in
XCTAssertEqual(error as? DocGenWorkerError, .malformedResponse)
}
}
func testWireResponseRejectsMismatchedIdentifier() throws {
let data = Data(
#"{"jsonrpc":"2.0","id":"other","result":{"contents":[{"uri":"file:///SSK_Ledger_Vault/docc_index.json","mimeType":"application/json","text":"value"}]}}"#.utf8
)
XCTAssertThrowsError(
try DocGenWorkerWireProtocol.decode(
data,
request: DocGenWorkerRequest(resource: .doccIndex),
identifier: "request-1"
)
) { error in
XCTAssertEqual(error as? DocGenWorkerError, .mismatchedResponseIdentifier)
}
}
func testWireResponseRejectsMoreThanOneFrame() throws {
let frame = #"{"jsonrpc":"2.0","id":"request-1","result":{"contents":[{"uri":"file:///SSK_Ledger_Vault/docc_index.json","mimeType":"application/json","text":"value"}]}}"#
let data = Data("\(frame)\n\(frame)\n".utf8)
XCTAssertThrowsError(
try DocGenWorkerWireProtocol.decode(
data,
request: DocGenWorkerRequest(resource: .doccIndex),
identifier: "request-1"
)
) { error in
XCTAssertEqual(error as? DocGenWorkerError, .unexpectedResponseCount)
}
}
func testWireResponseMapsWorkerErrorWithoutItsMessage() throws {
let data = Data(
#"{"jsonrpc":"2.0","id":"request-1","error":{"code":-32004,"message":"private path"}}"#.utf8
)
XCTAssertThrowsError(
try DocGenWorkerWireProtocol.decode(
data,
request: DocGenWorkerRequest(resource: .doccIndex),
identifier: "request-1"
)
) { error in
XCTAssertEqual(error as? DocGenWorkerError, .workerRejectedRequest(code: -32004))
XCTAssertFalse(error.localizedDescription.contains("private path"))
}
}
func testFakeExecutorRecordsSemanticRequest() async throws {
let expected = DocGenWorkerResponse(
resource: .codebaseGraph,
uri: DocGenResource.codebaseGraph.uri,
mimeType: DocGenResource.codebaseGraph.mimeType,
text: "{}"
)
let fake = FakeDocGenWorkerExecutor(results: [.success(expected)])
let request = DocGenWorkerRequest(resource: .codebaseGraph)
let response = try await fake.execute(request)
let recordedRequests = await fake.recordedRequests()
XCTAssertEqual(response, expected)
XCTAssertEqual(recordedRequests, [request])
}
func testMissingExecutableReturnsTypedError() async throws {
let directory = FileManager.default.temporaryDirectory
let executor = DocGenProcessWorkerExecutor(
executableURL: directory.appendingPathComponent(UUID().uuidString),
workspaceURL: directory,
vaultURL: directory
)
do {
_ = try await executor.execute(DocGenWorkerRequest(resource: .doccIndex))
XCTFail("Expected the executable check to fail.")
} catch {
XCTAssertEqual(error as? DocGenWorkerError, .executableUnavailable)
}
}
}
private actor FakeDocGenWorkerExecutor: DocGenWorkerExecuting {
private var results: [Result<DocGenWorkerResponse, DocGenWorkerError>]
private var requests: [DocGenWorkerRequest] = []
init(results: [Result<DocGenWorkerResponse, DocGenWorkerError>]) {
self.results = results
}
func execute(_ request: DocGenWorkerRequest) async throws -> DocGenWorkerResponse {
requests.append(request)
guard !results.isEmpty else {
throw DocGenWorkerError.malformedResponse
}
return try results.removeFirst().get()
}
func recordedRequests() -> [DocGenWorkerRequest] {
requests
}
}
#endif

Xet Storage Details

Size:
8.05 kB
·
Xet hash:
c3ccbbc8462c57f172692f834db071dfff575104ab5e4d577d12e5dc32a2b00f

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.