test: run the MCP client against the real API in CI
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 56/100
Research direction
Start by reading CLAUDE.md, the TaskFlow.Api and TaskFlow.Mcp projects, and the existing CI workflow to see how tests are run. The issue names WebApplicationFactory and a temporary SQLite database as the test harness; add coverage for the listed client operations and run the documented one-command check. Done means the acceptance criteria pass, including a CI run on every PR.
Written by the indexing model from the issue text.
Description
Part of nevridge/TaskFlow#397. Blocked by nevridge/TaskFlow#398. This replaces the earlier options (OpenAPI snapshot, throwaway container, process rule), because the API and client now share a repo.
Problem
ApiModels.cs and TaskFlowApiClient.cs are hand-written, and the tests use hand-written fixtures. They pass against a shape the API no longer has, which is how #238, #310 and #351 drifted unnoticed.
Scope
- Add a test project that references
TaskFlow.ApiandTaskFlow.Mcpand hosts the real API in-process withWebApplicationFactoryand a temporary SQLite database. - TaskFlow has no such harness today. It needs
Microsoft.AspNetCore.Mvc.Testing, andProgrammust be made visible to the tests. - Point
TaskFlowApiClientat the test server'sHttpClient. - Exercise create, update, plan, complete, block and unblock, plus reading the journal, through the client.
- Run it in CI on every PR, with no path filter, so API-only PRs run it too.
- Keep
TaskFlow.Mcpfree of any reference toTaskFlow.Api. Only the test project references both.
Acceptance criteria
- Re-introducing the
DateTimedue date makes a test fail. - Renaming or removing a response field the client reads makes a test fail.
- The check runs locally with one command, which is documented in
CLAUDE.md. - The API coverage threshold is unaffected.
- Dominant language
- C#
- Stars
- 1
- Forks
- 0
- Avg merge
- 2h 2m
- Merged PRs (30d)
- 98
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nevridge/TaskFlow
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
All issues in nevridge/TaskFlow
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
juandresrodca/AdminForge#54 ·
-
要トリアージ 辞書
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
yksr-melt/Meltype#1625 · 1 reaction ·
Maintainers usually reply within 1 day
-
Docs typoOpen
Difficulty 1/5 Under an hour Newbie friendliness 78/100
MonoGame/docs.monogame.github.io#328 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
space-wizards/RobustToolbox#7197 ·
Maintainers usually reply within 1 day
-
documentation high priority
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
lachydotmcg/capri-desktop#201 ·
Maintainers usually reply within 1 day