From d8df203cf707ced1302b96efacc086dd3b4b7520 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=81=A9=E5=AE=81?= Date: Wed, 1 Apr 2026 21:54:03 +0800 Subject: [PATCH] test: cover method-level RequestMapping routes Add Spring fixture coverage for method-level RequestMapping variants with and without an explicit RequestMethod to lock in route extraction behavior. Made-with: Cursor --- .../com/example/controller/HealthController.java | 5 +++++ .../com/example/controller/UserController.java | 6 ++++++ .../resolvers/spring-route-mapping.test.ts | 14 ++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/gitnexus/test/fixtures/lang-resolution/spring-route-mapping/src/main/java/com/example/controller/HealthController.java b/gitnexus/test/fixtures/lang-resolution/spring-route-mapping/src/main/java/com/example/controller/HealthController.java index 7896e8bc8..83fdc7208 100644 --- a/gitnexus/test/fixtures/lang-resolution/spring-route-mapping/src/main/java/com/example/controller/HealthController.java +++ b/gitnexus/test/fixtures/lang-resolution/spring-route-mapping/src/main/java/com/example/controller/HealthController.java @@ -6,6 +6,11 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class HealthController { + @RequestMapping("/status") + public String status() { + return "ok"; + } + @RequestMapping(path = "/health", method = RequestMethod.GET) public String health() { return "ok"; diff --git a/gitnexus/test/fixtures/lang-resolution/spring-route-mapping/src/main/java/com/example/controller/UserController.java b/gitnexus/test/fixtures/lang-resolution/spring-route-mapping/src/main/java/com/example/controller/UserController.java index 7fae149f3..16aaa01ff 100644 --- a/gitnexus/test/fixtures/lang-resolution/spring-route-mapping/src/main/java/com/example/controller/UserController.java +++ b/gitnexus/test/fixtures/lang-resolution/spring-route-mapping/src/main/java/com/example/controller/UserController.java @@ -4,6 +4,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController @@ -23,4 +24,9 @@ public class UserController { public String updateProfile() { return "updated"; } + + @RequestMapping(value = "/users/search", method = RequestMethod.POST) + public String searchUsers() { + return "search"; + } } diff --git a/gitnexus/test/integration/resolvers/spring-route-mapping.test.ts b/gitnexus/test/integration/resolvers/spring-route-mapping.test.ts index ad529a5cb..f28e2a656 100644 --- a/gitnexus/test/integration/resolvers/spring-route-mapping.test.ts +++ b/gitnexus/test/integration/resolvers/spring-route-mapping.test.ts @@ -20,18 +20,26 @@ describe('Spring route mapping', () => { expect(routes).toContain('/api/users'); expect(routes).toContain('/api/users/create'); expect(routes).toContain('/api/users/profile'); + expect(routes).toContain('/api/users/search'); expect(routes).toContain('/health'); + expect(routes).toContain('/status'); }); it('creates HANDLES_ROUTE edges from controller files', () => { const edges = getRelationships(result, 'HANDLES_ROUTE'); const usersRoute = edges.find((edge) => edge.target === '/api/users'); + const searchRoute = edges.find((edge) => edge.target === '/api/users/search'); const healthRoute = edges.find((edge) => edge.target === '/health'); + const statusRoute = edges.find((edge) => edge.target === '/status'); expect(usersRoute).toBeDefined(); expect(usersRoute!.sourceFilePath).toContain('UserController.java'); + expect(searchRoute).toBeDefined(); + expect(searchRoute!.sourceFilePath).toContain('UserController.java'); expect(healthRoute).toBeDefined(); expect(healthRoute!.sourceFilePath).toContain('HealthController.java'); + expect(statusRoute).toBeDefined(); + expect(statusRoute!.sourceFilePath).toContain('HealthController.java'); }); it('creates framework CALLS edges from controller files to handler methods', () => { @@ -39,8 +47,14 @@ describe('Spring route mapping', () => { expect( edges.some((edge) => edge.source === 'UserController.java' && edge.target === 'listUsers'), ).toBe(true); + expect( + edges.some((edge) => edge.source === 'UserController.java' && edge.target === 'searchUsers'), + ).toBe(true); expect( edges.some((edge) => edge.source === 'HealthController.java' && edge.target === 'health'), ).toBe(true); + expect( + edges.some((edge) => edge.source === 'HealthController.java' && edge.target === 'status'), + ).toBe(true); }); });