From cbf676007f9a72286b0e12d9fc0bf67391072138 Mon Sep 17 00:00:00 2001 From: Lucas Winther Date: Sat, 5 Sep 2026 18:22:12 +0200 Subject: [PATCH] docs: track completion of tasks 1-3 in domain services plan and TODO.md --- docs/TODO.md | 9 +++--- docs/plans/2026-09-05-domain-services-plan.md | 30 +++++++++---------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/docs/TODO.md b/docs/TODO.md index a1a0df6..a5a7ffc 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -53,11 +53,12 @@ - [x] Add unit tests in `tests/client.test.ts` verifying authentication headers, response parsing, and error sanitization against live container. - [ ] **Task 2: Domain Services** - - [ ] Implement `src/services/projects.ts` (`listProjects`, `getProject`). - - [ ] Implement `src/services/work-packages.ts` (`listWorkPackages`, `getWorkPackage`, `searchWorkPackages`). - - [ ] Implement `src/services/queries.ts` (`listQueries`, `getQuery`). + - [x] Implement `src/services/helper.ts` (`resolveClient` for ambient `RequestContext` resolution). + - [x] Implement `src/services/projects.ts` (`listProjects`, `getProject`, `getProjectSchema`). + - [x] Implement `src/services/work-packages.ts` (`listWorkPackages`, `getWorkPackage`, `searchWorkPackages`). + - [ ] Implement `src/services/queries.ts` (`listQueries`, `getQuery`, `getQueryResults`). - [ ] Implement `src/services/metadata.ts` (`listStatuses`, `listTypes`, `listPriorities`, `listUsers`). - - [ ] Add service tests in `tests/services.test.ts`. + - [/] Add service tests in `tests/services.test.ts` (helper, projects, and work packages test suites passing). - [ ] **Task 3: MCP Tool Definitions & Schema Registration** - [ ] Define Zod schemas and register tools in `src/tools/`: diff --git a/docs/plans/2026-09-05-domain-services-plan.md b/docs/plans/2026-09-05-domain-services-plan.md index 27e2bad..6121e7e 100644 --- a/docs/plans/2026-09-05-domain-services-plan.md +++ b/docs/plans/2026-09-05-domain-services-plan.md @@ -29,7 +29,7 @@ - Consumes: `getRequestContext` from `src/context.ts`, `OpenProjectClient` from `src/client/api-client.ts` - Produces: `resolveClient(client?: OpenProjectClient): OpenProjectClient` -- [ ] **Step 1: Write the failing test for client resolution** +- [x] **Step 1: Write the failing test for client resolution** In `tests/services.test.ts`: ```typescript @@ -70,12 +70,12 @@ describe("Domain Services Helper", () => { }); ``` -- [ ] **Step 2: Run test to verify it fails** +- [x] **Step 2: Run test to verify it fails** Run: `bun test tests/services.test.ts` Expected: FAIL with module not found `../src/services/helper.ts` -- [ ] **Step 3: Write minimal implementation** +- [x] **Step 3: Write minimal implementation** In `src/services/helper.ts`: ```typescript @@ -95,12 +95,12 @@ export function resolveClient(client?: OpenProjectClient): OpenProjectClient { } ``` -- [ ] **Step 4: Run test to verify it passes** +- [x] **Step 4: Run test to verify it passes** Run: `bun test tests/services.test.ts` Expected: PASS (3 tests passed) -- [ ] **Step 5: Commit** +- [x] **Step 5: Commit** ```bash git add src/services/helper.ts tests/services.test.ts @@ -127,7 +127,7 @@ git commit -m "feat(services): implement shared client resolution helper" - `getProjectSchema(client?: OpenProjectClient): Promise>` - `ListProjectsParams` interface -- [ ] **Step 1: Write failing tests for projects service** +- [x] **Step 1: Write failing tests for projects service** Append to `tests/services.test.ts`: ```typescript @@ -226,12 +226,12 @@ describe("Projects Service", () => { }); ``` -- [ ] **Step 2: Run test to verify it fails** +- [x] **Step 2: Run test to verify it fails** Run: `bun test tests/services.test.ts` Expected: FAIL with module not found `../src/services/projects.ts` -- [ ] **Step 3: Write minimal implementation** +- [x] **Step 3: Write minimal implementation** In `src/services/projects.ts`: ```typescript @@ -306,12 +306,12 @@ export async function getProjectSchema( } ``` -- [ ] **Step 4: Run test to verify it passes** +- [x] **Step 4: Run test to verify it passes** Run: `bun test tests/services.test.ts` Expected: PASS -- [ ] **Step 5: Commit** +- [x] **Step 5: Commit** ```bash git add src/services/projects.ts tests/services.test.ts @@ -339,7 +339,7 @@ git commit -m "feat(services): implement projects domain service" - `searchWorkPackages(query: string, options?: SearchWorkPackagesOptions, client?: OpenProjectClient): Promise>` - `ListWorkPackagesParams`, `SearchWorkPackagesOptions` interfaces -- [ ] **Step 1: Write failing tests for work packages service** +- [x] **Step 1: Write failing tests for work packages service** Append to `tests/services.test.ts`: ```typescript @@ -468,12 +468,12 @@ describe("Work Packages Service", () => { }); ``` -- [ ] **Step 2: Run test to verify it fails** +- [x] **Step 2: Run test to verify it fails** Run: `bun test tests/services.test.ts` Expected: FAIL with module not found `../src/services/work-packages.ts` -- [ ] **Step 3: Write minimal implementation** +- [x] **Step 3: Write minimal implementation** In `src/services/work-packages.ts`: ```typescript @@ -567,12 +567,12 @@ export async function searchWorkPackages( } ``` -- [ ] **Step 4: Run test to verify it passes** +- [x] **Step 4: Run test to verify it passes** Run: `bun test tests/services.test.ts` Expected: PASS -- [ ] **Step 5: Commit** +- [x] **Step 5: Commit** ```bash git add src/services/work-packages.ts tests/services.test.ts