quarkiverse / quarkus-renarde

Server-side Web Framework with Qute templating, magic/easier controllers, auth, reverse-routing
Apache License 2.0
78 stars 19 forks source link

uriabs and uri namespaces do not work in testing #181

Closed gbourant closed 9 months ago

gbourant commented 10 months ago

I try to test an email which uses the uriabs name to get the URI but i get the following error java.lang.IllegalStateException: No RESTEasy Reactive request in progress.

class AuthService {
 public void sendVerificationEmail(String email) {
  // sends Qute emails which use the uriabs namescape
 }
}

Is this even solvable? Router.getUriBuilder uses UriInfo uriInfo = Arc.container().instance(UriInfo.class).get();

gbourant commented 10 months ago

In case if this is needed.

java.lang.IllegalStateException: No RESTEasy Reactive request in progress

    at org.jboss.resteasy.reactive.server.injection.ContextProducers.getContext(ContextProducers.java:149)
    at org.jboss.resteasy.reactive.server.injection.ContextProducers.uriInfo(ContextProducers.java:46)
    at org.jboss.resteasy.reactive.server.injection.ContextProducers_ProducerMethod_uriInfo_LhPIxmZHFcGo50FiGi9PStr8B5U_Bean.doCreate(Unknown Source)
    at org.jboss.resteasy.reactive.server.injection.ContextProducers_ProducerMethod_uriInfo_LhPIxmZHFcGo50FiGi9PStr8B5U_Bean.create(Unknown Source)
    at org.jboss.resteasy.reactive.server.injection.ContextProducers_ProducerMethod_uriInfo_LhPIxmZHFcGo50FiGi9PStr8B5U_Bean.create(Unknown Source)
    at io.quarkus.arc.impl.RequestContext$1.get(RequestContext.java:79)
    at io.quarkus.arc.impl.RequestContext$1.get(RequestContext.java:75)
    at io.quarkus.arc.generator.Default_jakarta_enterprise_context_RequestScoped_ContextInstances.c22(Unknown Source)
    at io.quarkus.arc.generator.Default_jakarta_enterprise_context_RequestScoped_ContextInstances.computeIfAbsent(Unknown Source)
    at io.quarkus.arc.impl.RequestContext.getIfActive(RequestContext.java:75)
    at io.quarkus.arc.impl.ClientProxies.getSingleContextDelegate(ClientProxies.java:28)
    at jakarta.ws.rs.core.ContextProducers_ProducerMethod_uriInfo_LhPIxmZHFcGo50FiGi9PStr8B5U_ClientProxy.arc$delegate(Unknown Source)
    at jakarta.ws.rs.core.ContextProducers_ProducerMethod_uriInfo_LhPIxmZHFcGo50FiGi9PStr8B5U_ClientProxy.getBaseUriBuilder(Unknown Source)
    at io.quarkiverse.renarde.router.Router.getUriBuilder(Router.java:306)
    at com.gbourant.admin.security.AuthResource.__uri$register(AuthResource.java)
    at com.gbourant.admin.security.AuthResource.__urivarargs$register$0a532aa7fb4996d9e06e82a34b9ee976c18cf8fd(AuthResource.java)
    at __RenardeInit$$function$$10.getRoute(Unknown Source)
    at io.quarkiverse.renarde.router.Router.findURI(Router.java:285)
    at io.quarkiverse.renarde.util.QuteResolvers.findURI(QuteResolvers.java:154)
    at io.quarkiverse.renarde.util.QuteResolvers.lambda$evaluateParameters$9(QuteResolvers.java:169)
    at io.smallrye.context.impl.wrappers.SlowContextualFunction.apply(SlowContextualFunction.java:21)
    at io.smallrye.mutiny.operators.uni.UniAndCombination$AndSupervisor.computeAndFireTheOutcome(UniAndCombination.java:146)
    at io.smallrye.mutiny.operators.uni.UniAndCombination$AndSupervisor.check(UniAndCombination.java:130)
    at io.smallrye.mutiny.operators.uni.UniAndCombination$UniHandler.onItem(UniAndCombination.java:220)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromCompletionStage$CompletionStageUniSubscription.forwardResult(UniCreateFromCompletionStage.java:63)
    at io.quarkus.qute.CompletedStage.whenComplete(CompletedStage.java:285)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromCompletionStage$CompletionStageUniSubscription.forward(UniCreateFromCompletionStage.java:51)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromCompletionStage.subscribe(UniCreateFromCompletionStage.java:35)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
    at io.smallrye.mutiny.operators.uni.UniAndCombination$UniHandler.subscribe(UniAndCombination.java:233)
    at io.smallrye.mutiny.operators.uni.UniAndCombination$AndSupervisor.run(UniAndCombination.java:87)
    at io.smallrye.mutiny.operators.uni.UniAndCombination.subscribe(UniAndCombination.java:53)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
    at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:51)
    at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:110)
    at io.smallrye.mutiny.operators.uni.UniSubscribeToCompletionStage.subscribe(UniSubscribeToCompletionStage.java:30)
    at io.smallrye.mutiny.groups.UniSubscribe.asCompletionStage(UniSubscribe.java:174)
    at io.smallrye.mutiny.groups.UniSubscribe.asCompletionStage(UniSubscribe.java:162)
    at io.smallrye.mutiny.Uni.subscribeAsCompletionStage(Uni.java:141)
    at io.smallrye.mutiny.converters.uni.ToCompletionStage.apply(ToCompletionStage.java:18)
    at io.smallrye.mutiny.converters.uni.ToCompletionStage.apply(ToCompletionStage.java:8)
    at io.smallrye.mutiny.groups.UniConvert.with(UniConvert.java:32)
    at io.smallrye.mutiny.groups.UniConvert.toCompletionStage(UniConvert.java:37)
    at io.quarkiverse.renarde.util.QuteResolvers.evaluateParameters(QuteResolvers.java:170)
    at io.quarkiverse.renarde.util.QuteResolvers.lambda$configureEngine$5(QuteResolvers.java:123)
    at io.quarkus.qute.ValueResolverBuilder$5.apply(ValueResolverBuilder.java:135)
    at io.quarkus.qute.ValueResolverBuilder$5.apply(ValueResolverBuilder.java:132)
    at io.quarkus.qute.ValueResolverBuilder$ValueResolverImpl.resolve(ValueResolverBuilder.java:179)
    at io.quarkus.qute.EvaluatorImpl.resolve(EvaluatorImpl.java:211)
    at io.quarkus.qute.EvaluatorImpl.resolveReference(EvaluatorImpl.java:131)
    at io.quarkus.qute.EvaluatorImpl.lambda$evaluate$0(EvaluatorImpl.java:78)
    at io.quarkus.qute.CompletedStage.thenCompose(CompletedStage.java:249)
    at io.quarkus.qute.EvaluatorImpl.evaluate(EvaluatorImpl.java:77)
    at io.quarkus.qute.ResolutionContextImpl.evaluate(ResolutionContextImpl.java:29)
    at io.quarkus.qute.ExpressionNode.resolve(ExpressionNode.java:36)
    at io.quarkus.qute.SectionNode$SectionResolutionContextImpl.execute(SectionNode.java:228)
    at io.quarkus.qute.SectionHelper$SectionResolutionContext.execute(SectionHelper.java:66)
    at io.quarkus.qute.Parser$1.resolve(Parser.java:1288)
    at io.quarkus.qute.SectionNode.resolve(SectionNode.java:53)
    at io.quarkus.qute.SectionNode.resolve(SectionNode.java:58)
    at io.quarkus.qute.TemplateImpl$TemplateInstanceImpl.renderData(TemplateImpl.java:233)
    at io.quarkus.qute.TemplateImpl$TemplateInstanceImpl.renderAsyncNoTimeout(TemplateImpl.java:224)
    at io.quarkus.qute.TemplateImpl$TemplateInstanceImpl.renderAsync(TemplateImpl.java:197)
    at io.quarkus.qute.runtime.TemplateProducer$InjectableTemplate$InjectableTemplateInstanceImpl.renderAsync(TemplateProducer.java:313)
    at io.quarkus.mailer.runtime.MailTemplateInstanceImpl$1.get(MailTemplateInstanceImpl.java:141)
    at io.quarkus.mailer.runtime.MailTemplateInstanceImpl$1.get(MailTemplateInstanceImpl.java:137)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromCompletionStage.subscribe(UniCreateFromCompletionStage.java:24)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
    at io.smallrye.mutiny.operators.uni.UniAndCombination$UniHandler.subscribe(UniAndCombination.java:233)
    at io.smallrye.mutiny.operators.uni.UniAndCombination$AndSupervisor.run(UniAndCombination.java:87)
    at io.smallrye.mutiny.operators.uni.UniAndCombination.subscribe(UniAndCombination.java:53)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
    at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni.subscribe(UniOnItemTransformToUni.java:25)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
    at io.smallrye.mutiny.operators.uni.UniBlockingAwait.await(UniBlockingAwait.java:60)
    at io.smallrye.mutiny.groups.UniAwait.atMost(UniAwait.java:65)
    at com.gbourant.admin.security.AuthService.sendVerificationEmail(AuthService.java:157)
    at com.gbourant.admin.security.AuthService_Subclass.sendVerificationEmail$$superforward(Unknown Source)
    at com.gbourant.admin.security.AuthService_Subclass$$function$$4.apply(Unknown Source)
    at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:73)
    at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:62)
    at io.quarkus.hibernate.validator.runtime.interceptor.AbstractMethodValidationInterceptor.validateMethodInvocation(AbstractMethodValidationInterceptor.java:71)
    at io.quarkus.hibernate.validator.runtime.interceptor.MethodValidationInterceptor.validateMethodInvocation(MethodValidationInterceptor.java:17)
    at io.quarkus.hibernate.validator.runtime.interceptor.MethodValidationInterceptor_Bean.intercept(Unknown Source)
    at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:42)
    at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:30)
    at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:27)
    at com.gbourant.admin.security.AuthService_Subclass.sendVerificationEmail(Unknown Source)
    at com.gbourant.admin.security.AuthService.sendVerificationEmail(AuthService.java:115)
    at com.gbourant.admin.security.AuthService_Subclass.sendVerificationEmail$$superforward(Unknown Source)
    at com.gbourant.admin.security.AuthService_Subclass$$function$$3.apply(Unknown Source)
    at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:73)
    at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:62)
    at io.quarkus.hibernate.validator.runtime.interceptor.AbstractMethodValidationInterceptor.validateMethodInvocation(AbstractMethodValidationInterceptor.java:71)
    at io.quarkus.hibernate.validator.runtime.interceptor.MethodValidationInterceptor.validateMethodInvocation(MethodValidationInterceptor.java:17)
    at io.quarkus.hibernate.validator.runtime.interceptor.MethodValidationInterceptor_Bean.intercept(Unknown Source)
    at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:42)
    at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:30)
    at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:27)
    at com.gbourant.admin.security.AuthService_Subclass.sendVerificationEmail(Unknown Source)
    at com.gbourant.admin.security.AuthService_ClientProxy.sendVerificationEmail(Unknown Source)
    at com.gbourant.admin.AuthResourceTest.testEmail(AuthResourceTest.java:67)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at io.quarkus.test.junit.QuarkusTestExtension.runExtensionMethod(QuarkusTestExtension.java:1014)
    at io.quarkus.test.junit.QuarkusTestExtension.interceptTestMethod(QuarkusTestExtension.java:828)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)