(t *testing.T)
| 194 | } |
| 195 | |
| 196 | func TestDrain_Train_PatternEmergence(t *testing.T) { |
| 197 | t.Parallel() |
| 198 | |
| 199 | drain := New("test-tenant", DefaultConfig()) |
| 200 | |
| 201 | // First span - creates initial cluster |
| 202 | cluster1 := drain.Train("GET /api/users/123") |
| 203 | require.NotNil(t, cluster1) |
| 204 | pattern1 := cluster1.String() |
| 205 | |
| 206 | // Second similar span - should match and update pattern |
| 207 | cluster2 := drain.Train("GET /api/users/456") |
| 208 | require.NotNil(t, cluster2) |
| 209 | |
| 210 | pattern2 := cluster2.String() |
| 211 | require.Contains(t, pattern2, "<_>", "pattern should emerge with parameter marker") |
| 212 | require.NotEqual(t, pattern1, pattern2, "pattern should change after merging") |
| 213 | } |
nothing calls this directly
no test coverage detected