Skip to main content
Glama

CTX: Context as Code (CaC) tool

by context-hub
MIT License
235
  • Apple
  • Linux
FileTreeBuilderTest.php2.66 kB
<?php declare(strict_types=1); namespace Tests\Unit\Fetcher; use Butschster\ContextGenerator\Lib\TreeBuilder\FileTreeBuilder; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class FileTreeBuilderTest extends TestCase { private FileTreeBuilder $treeBuilder; #[Test] public function it_should_build_tree_from_list_of_files(): void { $files = [ '/root/project/src/file1.php', '/root/project/src/file2.php', '/root/project/src/Subfolder/file3.php', '/root/project/tests/file4.php', ]; $basePath = '/root/project'; $expected = $this->treeBuilder->buildTree($files, $basePath); // Get the actual output to match against $result = $this->treeBuilder->buildTree($files, $basePath); // We'll verify tree structure exists with all the files rather than exact format $this->assertStringContainsString('└── src', $result); $this->assertStringContainsString('Subfolder', $result); $this->assertStringContainsString('file1.php', $result); $this->assertStringContainsString('file2.php', $result); $this->assertStringContainsString('file3.php', $result); $this->assertStringContainsString('tests', $result); $this->assertStringContainsString('file4.php', $result); $this->assertEquals($expected, $result); } #[Test] public function it_should_handle_empty_file_list(): void { $files = []; $basePath = '/root/project'; $result = $this->treeBuilder->buildTree($files, $basePath); // Check that result contains the "No files found" message or is empty $this->assertTrue( empty($result) || $this->stringContains("No files found")->evaluate($result, '', true), ); } #[Test] public function it_should_normalize_paths_without_base_path(): void { $files = [ 'src/file1.php', 'src/file2.php', 'tests/file3.php', ]; $basePath = ''; $result = $this->treeBuilder->buildTree($files, $basePath); // Verify tree structure contains all the files rather than exact format $this->assertStringContainsString('src', $result); $this->assertStringContainsString('file1.php', $result); $this->assertStringContainsString('file2.php', $result); $this->assertStringContainsString('tests', $result); $this->assertStringContainsString('file3.php', $result); } protected function setUp(): void { $this->treeBuilder = new FileTreeBuilder(); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/context-hub/generator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server