// // File.swift // Pterodactyl // // Created by Jon Sterling on 30/11/2025. // import Foundation import Testing @testable import PterodactylBuild @testable import PterodactylLanguageServer @testable import TSCBasic @testable import llbuild2fx struct LanguageServerTests { @Test func testSingletonFileTree() throws { let path = try AbsolutePath(validating: "/foo/bar/file.txt") let foo = LLBDeclFileTree.file(absolutePath: path, contents: "foobar") let expected: LLBDeclFileTree = .dir([ "foo": .dir([ "bar": .dir([ "file.txt": .file("foobar") ]) ]) ]) #expect(foo.debugDescription == expected.debugDescription) } @Test func testSourceTreeManager() async throws { let group = LLBMakeDefaultDispatchGroup() let db = LLBInMemoryCASDatabase(group: group) let functionCache = FXInMemoryFunctionCache(group: group) let executor = FXLocalExecutor() let engine = FXEngine(group: group, db: db, functionCache: functionCache, executor: executor) let client = LLBCASFSClient(db) let context = Context() let manager = try await SourceTreeManager(buildEngine: engine, casClient: client, casContext: context) let uri = "file://foo/bar/wooo.txt" let contents = "hello world" try await manager.setBufferText(uri: uri, text: contents) try await #expect(manager.getBufferText(uri: uri) == contents) } }