(t *testing.T)
| 233 | } |
| 234 | |
| 235 | func TestOverridesExtension_UnmarshalYAML(t *testing.T) { |
| 236 | t.Run("overrides", func(t *testing.T) { |
| 237 | resetRegistryForTesting(t) |
| 238 | get := RegisterExtension(&testExtension{}) |
| 239 | |
| 240 | input := ` |
| 241 | ingestion: |
| 242 | max_traces_per_user: 1000 |
| 243 | test_extension: |
| 244 | field_a: from_yaml |
| 245 | field_b: 11 |
| 246 | ` |
| 247 | var o Overrides |
| 248 | require.NoError(t, yaml.Unmarshal([]byte(input), &o)) |
| 249 | |
| 250 | assert.Equal(t, 1000, o.Ingestion.MaxLocalTracesPerUser) |
| 251 | ext := get(&o) |
| 252 | require.NotNil(t, ext) |
| 253 | assert.Equal(t, "from_yaml", ext.FieldA) |
| 254 | assert.Equal(t, 11, *ext.FieldB) |
| 255 | }) |
| 256 | |
| 257 | t.Run("Overrides_strict_decoder_absorbs_extension_key", func(t *testing.T) { |
| 258 | resetRegistryForTesting(t) |
| 259 | RegisterExtension(&testExtension{}) |
| 260 | |
| 261 | input := ` |
| 262 | ingestion: |
| 263 | max_traces_per_user: 500 |
| 264 | test_extension: |
| 265 | field_a: strict_ok |
| 266 | ` |
| 267 | var o Overrides |
| 268 | decoder := yaml.NewDecoder(strings.NewReader(input)) |
| 269 | decoder.SetStrict(true) |
| 270 | require.NoError(t, decoder.Decode(&o), "strict YAML decoder must not error on registered extension keys") |
| 271 | }) |
| 272 | |
| 273 | t.Run("overrides unregistered key", func(t *testing.T) { |
| 274 | resetRegistryForTesting(t) |
| 275 | |
| 276 | input := ` |
| 277 | ingestion: |
| 278 | max_traces_per_user: 1 |
| 279 | unknown_ext: |
| 280 | x: 1 |
| 281 | ` |
| 282 | var o Overrides |
| 283 | err := yaml.Unmarshal([]byte(input), &o) |
| 284 | require.ErrorContains(t, err, "unknown extension key") |
| 285 | }) |
| 286 | |
| 287 | t.Run("legacy overrides", func(t *testing.T) { |
| 288 | resetRegistryForTesting(t) |
| 289 | get := RegisterExtension(&testExtension{}) |
| 290 | |
| 291 | input := ` |
| 292 | max_traces_per_user: 1000 |
nothing calls this directly
no test coverage detected