From 059d6e996277e2d735cf1b361e4d424fba329d1f Mon Sep 17 00:00:00 2001 From: arvarik <9952627+arvarik@users.noreply.github.com> Date: Tue, 23 Jun 2026 21:30:42 +0000 Subject: [PATCH] chore: remove stub TODO in TypeScript scaffolding - Remove TODO comment in TypeScript route scaffolding - Update stub implementation to use Response.json() - Include path in the scaffolded response - Add unit tests for TypeScript route scaffolding Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- src/gemstack/project/scaffolder.py | 3 +-- tests/test_scaffold_ts.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 tests/test_scaffold_ts.py diff --git a/src/gemstack/project/scaffolder.py b/src/gemstack/project/scaffolder.py index 2aa705a..0c393f9 100644 --- a/src/gemstack/project/scaffolder.py +++ b/src/gemstack/project/scaffolder.py @@ -111,8 +111,7 @@ def _scaffold_ts_route(self, route_path: str) -> Path: route_file, f"// Route handler for {route_path}\n\n" f"export async function handle(req: Request): Promise {{\n" - f" // TODO: Implement {route_path}\n" - f' return new Response(JSON.stringify({{ status: "ok" }}));\n' + f' return Response.json({{ status: "ok", path: "{route_path}" }});\n' f"}}\n", ) return route_file diff --git a/tests/test_scaffold_ts.py b/tests/test_scaffold_ts.py new file mode 100644 index 0000000..3bb4b3e --- /dev/null +++ b/tests/test_scaffold_ts.py @@ -0,0 +1,16 @@ +"""Tests for TypeScript scaffolding.""" + +from pathlib import Path +from gemstack.project.scaffolder import Scaffolder + +class TestTypeScriptScaffolding: + def test_scaffold_route_creates_files(self, tmp_path: Path) -> None: + route_path = "/api/v1/users" + Scaffolder(tmp_path)._scaffold_ts_route(route_path) + + route_file = tmp_path / "src" / "routes" / "api-v1-users.ts" + assert route_file.exists() + content = route_file.read_text() + assert "export async function handle(req: Request): Promise" in content + assert f'return Response.json({{ status: "ok", path: "{route_path}" }});' in content + assert "TODO" not in content