test: run the MCP client against the real API in CI

未关闭
#411 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
56/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
活跃
技术栈
csharp, github-actions, sqlite
领域
api, ci-cd, testing

调研方向

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.

由索引模型根据 Issue 内容生成。

描述

enhancement

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.Api and TaskFlow.Mcp and hosts the real API in-process with WebApplicationFactory and a temporary SQLite database.
  • TaskFlow has no such harness today. It needs Microsoft.AspNetCore.Mvc.Testing, and Program must be made visible to the tests.
  • Point TaskFlowApiClient at the test server's HttpClient.
  • 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.Mcp free of any reference to TaskFlow.Api. Only the test project references both.

Acceptance criteria

  1. Re-introducing the DateTime due date makes a test fail.
  2. Renaming or removing a response field the client reads makes a test fail.
  3. The check runs locally with one command, which is documented in CLAUDE.md.
  4. The API coverage threshold is unaffected.
主要语言
C#
星标
1
派生
0
平均合并
2 小时 2 分钟
30 天内合并 PR
98

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

nevridge/TaskFlow 的其他 Issue

查看 nevridge/TaskFlow 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。