Code review comment: ~~That said, we could make it configurable...~~  Actually, it would make more sense to allow the test to modify the `SmallRyeConfigBuilder`. This would be a more advanced feature compared to the `QuarkusComponentTest#configConverters()`. And it could be only used from the `QuarkusComponentTestExtensionBuilder`.

Code before review:
private void startContainer(ExtensionContext context, Lifecycle testInstanceLifecycle) throws Exception {
if (testInstanceLifecycle.equals(context.getTestInstanceLifecycle().orElse(Lifecycle.PER_METHOD))) {
Arc.initialize();
QuarkusComponentTestConfiguration configuration = context.getRoot().getStore(NAMESPACE)
.get(KEY_TEST_CLASS_CONFIG, QuarkusComponentTestConfiguration.class);
Optional<Method> testMethod = context.getTestMethod();
if (testMethod.isPresent()) {
configuration = configuration.update(testMethod.get());
}
ConfigProviderResolver oldConfigProviderResolver = ConfigProviderResolver.instance();
context.getRoot().getStore(NAMESPACE).put(KEY_OLD_CONFIG_PROVIDER_RESOLVER, oldConfigProviderResolver);
SmallRyeConfigProviderResolver smallRyeConfigProviderResolver = new SmallRyeConfigProviderResolver();
ConfigProviderResolver.setInstance(smallRyeConfigProviderResolver);
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
SmallRyeConfigBuilder configBuilder = new SmallRyeConfigBuilder().forClassLoader(tccl)
.addDefaultInterceptors()
.withConverters(configuration.configConverters.toArray(new Converter<?>[] {}))
.addDefaultSources()
.withSources(new ApplicationPropertiesConfigSourceLoader.InFileSystem())
.withSources(new ApplicationPropertiesConfigSourceLoader.InClassPath())
.withSources(
new QuarkusComponentTestConfigSource(configuration.configProperties,
configuration.configSourceOrdinal));
@SuppressWarnings("unchecked")
Set<ConfigClassWithPrefix> configMappings = context.getRoot().getStore(NAMESPACE).get(KEY_CONFIG_MAPPINGS,
Set.class);
if (configMappings != null) {
for (ConfigClassWithPrefix mapping : configMappings) {
configBuilder.withMapping(mapping.getKlass(), mapping.getPrefix());
}
}
SmallRyeConfig config = configBuilder.build();
smallRyeConfigProviderResolver.registerConfig(config, tccl);
context.getRoot().getStore(NAMESPACE).put(KEY_CONFIG, config);
ConfigBeanCreator.setClassLoader(tccl);
Object testInstance = context.getRequiredTestInstance();
context.getRoot().getStore(NAMESPACE).put(KEY_INJECTED_FIELDS,
injectFields(context.getRequiredTestClass(), testInstance));
context.getRoot().getStore(NAMESPACE).put(KEY_INJECTED_PARAMS, new CopyOnWriteArrayList<>());
}
}

Line under review: .addDefaultInterceptors()

Code after addressing the review:
private void startContainer(ExtensionContext context, Lifecycle testInstanceLifecycle) throws Exception {
if (testInstanceLifecycle.equals(context.getTestInstanceLifecycle().orElse(Lifecycle.PER_METHOD))) {
Arc.initialize();
QuarkusComponentTestConfiguration configuration = store(context).get(KEY_TEST_CLASS_CONFIG,
QuarkusComponentTestConfiguration.class);
Optional<Method> testMethod = context.getTestMethod();
if (testMethod.isPresent()) {
configuration = configuration.update(testMethod.get());
}
ConfigProviderResolver oldConfigProviderResolver = ConfigProviderResolver.instance();
store(context).put(KEY_OLD_CONFIG_PROVIDER_RESOLVER, oldConfigProviderResolver);
SmallRyeConfigProviderResolver smallRyeConfigProviderResolver = new SmallRyeConfigProviderResolver();
ConfigProviderResolver.setInstance(smallRyeConfigProviderResolver);
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
SmallRyeConfigBuilder configBuilder = new SmallRyeConfigBuilder().forClassLoader(tccl)
.addDefaultInterceptors()
.withConverters(configuration.configConverters.toArray(new Converter<?>[] {}))
.addDefaultSources()
.withSources(new ApplicationPropertiesConfigSourceLoader.InFileSystem())
.withSources(new ApplicationPropertiesConfigSourceLoader.InClassPath())
.withSources(
new QuarkusComponentTestConfigSource(configuration.configProperties,
configuration.configSourceOrdinal));
@SuppressWarnings("unchecked")
Set<ConfigClassWithPrefix> configMappings = store(context).get(KEY_CONFIG_MAPPINGS, Set.class);
if (configMappings != null) {
for (ConfigClassWithPrefix mapping : configMappings) {
configBuilder.withMapping(mapping.getKlass(), mapping.getPrefix());
}
}
if (configuration.configBuilderCustomizer != null) {
configuration.configBuilderCustomizer.accept(configBuilder);
}
SmallRyeConfig config = configBuilder.build();
smallRyeConfigProviderResolver.registerConfig(config, tccl);
store(context).put(KEY_CONFIG, config);
ConfigBeanCreator.setClassLoader(tccl);
Object testInstance = context.getRequiredTestInstance();
store(context).put(KEY_INJECTED_FIELDS, injectFields(context.getRequiredTestClass(), testInstance));
store(context).put(KEY_INJECTED_PARAMS, new CopyOnWriteArrayList<>());
}
}