Buckets:
localhost1978/localhost / LOCALHOST1978 /Modules /SSK_Foundation /Tests /SSK_FoundationTests /DocGenProcessWorkerExecutorTests.swift
| #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.