feature: Add projects homepage and support for adding new projects

This commit is contained in:
Keith Solomon
2026-04-05 16:58:51 -05:00
parent 239a7eff64
commit 6d923b98b9
10 changed files with 492 additions and 38 deletions
+21 -1
View File
@@ -26,7 +26,6 @@ final class BoardServiceTest extends IntegrationTestCase
{
$projectId = $this->createProject();
$service = new BoardService();
$state = $service->getBoardState($projectId);
self::assertSame(
@@ -38,6 +37,27 @@ final class BoardServiceTest extends IntegrationTestCase
self::assertSame('Demo Project', $state['project']['title']);
}
/**
* Ensure creating a project initializes markdown storage and default board state.
*
* @return void
*/
public function testCreateProjectBuildsInitialBoardState(): void
{
$service = new BoardService();
$state = $service->createProject('Release Planning', 'Track launch work.', 'release-planning');
self::assertSame('release-planning', $state['project']['id']);
self::assertSame('Release Planning', $state['project']['title']);
self::assertSame('Track launch work.', trim((string) $state['project']['body']));
self::assertSame(
['backlog', 'ready', 'in-progress', 'review', 'done', 'trash'],
array_column($state['columns'], 'id')
);
self::assertFileExists($this->projectRoot . DIRECTORY_SEPARATOR . 'release-planning' . DIRECTORY_SEPARATOR . 'index.md');
}
/**
* Ensure a created task is persisted and returned in board state.
*