Helper: create a typical graph for search/traversal tests. * * Nodes: SubmitOrder (Function), ProcessOrder (Function), OrderService (Class) * Edges: SubmitOrder → ProcessOrder (CALLS) * * Returns store handle. Fills ids[3]. */
| 20 | * Returns store handle. Fills ids[3]. |
| 21 | */ |
| 22 | static cbm_store_t *setup_search_store(int64_t *ids) { |
| 23 | cbm_store_t *s = cbm_store_open_memory(); |
| 24 | cbm_store_upsert_project(s, "test", "/tmp/test"); |
| 25 | |
| 26 | cbm_node_t n1 = {.project = "test", |
| 27 | .label = "Function", |
| 28 | .name = "SubmitOrder", |
| 29 | .qualified_name = "test.main.SubmitOrder", |
| 30 | .file_path = "main.go"}; |
| 31 | cbm_node_t n2 = {.project = "test", |
| 32 | .label = "Function", |
| 33 | .name = "ProcessOrder", |
| 34 | .qualified_name = "test.service.ProcessOrder", |
| 35 | .file_path = "service.go"}; |
| 36 | cbm_node_t n3 = {.project = "test", |
| 37 | .label = "Class", |
| 38 | .name = "OrderService", |
| 39 | .qualified_name = "test.service.OrderService", |
| 40 | .file_path = "service.go"}; |
| 41 | |
| 42 | ids[0] = cbm_store_upsert_node(s, &n1); |
| 43 | ids[1] = cbm_store_upsert_node(s, &n2); |
| 44 | ids[2] = cbm_store_upsert_node(s, &n3); |
| 45 | |
| 46 | cbm_edge_t e = {.project = "test", .source_id = ids[0], .target_id = ids[1], .type = "CALLS"}; |
| 47 | cbm_store_insert_edge(s, &e); |
| 48 | |
| 49 | return s; |
| 50 | } |
| 51 | |
| 52 | /* ── Search by label ────────────────────────────────────────────── */ |
| 53 |
no test coverage detected