diff --git a/modules/core/app/io/toolsplus/atlassian/connect/play/actions/asymmetric/AssociateAtlassianHostUserAction.scala b/modules/core/app/io/toolsplus/atlassian/connect/play/actions/asymmetric/AssociateAtlassianHostUserAction.scala index a571363..25c49a3 100644 --- a/modules/core/app/io/toolsplus/atlassian/connect/play/actions/asymmetric/AssociateAtlassianHostUserAction.scala +++ b/modules/core/app/io/toolsplus/atlassian/connect/play/actions/asymmetric/AssociateAtlassianHostUserAction.scala @@ -43,10 +43,12 @@ trait AbstractAssociateAtlassianHostUserActionRefiner[R[A] <: WrappedRequest[A]] .findByClientKey(installation.clientKey) .map(hostSearchResultToActionResult(_, request)) case None => - logger.error( - s"Failed to associate Connect host to Forge Remote Compute invocation: No host mapping for installation id $installationId found" + logger.info( + s"Could not associate Connect host to Forge Remote Compute invocation: No host mapping for installation id $installationId found. This is probably a pure Forge installation" + ) + Future.successful( + hostSearchResultToActionResult(None, request) ) - Future.successful(Left(BadRequest(s"Missing Connect mapping"))) }) } } diff --git a/modules/core/test/io/toolsplus/atlassian/connect/play/actions/asymmetric/AssociateAtlassianHostUserActionSpec.scala b/modules/core/test/io/toolsplus/atlassian/connect/play/actions/asymmetric/AssociateAtlassianHostUserActionSpec.scala index 944c7d5..9d2677a 100644 --- a/modules/core/test/io/toolsplus/atlassian/connect/play/actions/asymmetric/AssociateAtlassianHostUserActionSpec.scala +++ b/modules/core/test/io/toolsplus/atlassian/connect/play/actions/asymmetric/AssociateAtlassianHostUserActionSpec.scala @@ -121,7 +121,7 @@ class AssociateAtlassianHostUserActionSpec ForgeRemoteContext( fakeForgeInvocationContext, forgeRemoteCredentials.traceId, - forgeRemoteCredentials.spanId, + forgeRemoteCredentials.spanId ), forgeRemoteRequest ) @@ -176,7 +176,7 @@ class AssociateAtlassianHostUserActionSpec ForgeRemoteContext( fakeForgeInvocationContext, forgeRemoteCredentials.traceId, - forgeRemoteCredentials.spanId, + forgeRemoteCredentials.spanId ), forgeRemoteRequest ) @@ -188,7 +188,7 @@ class AssociateAtlassianHostUserActionSpec val result = await { refiner.refine(forgeRemoteContextRequest) } - result mustBe Left(BadRequest(s"Missing Connect mapping")) + result mustBe Left(BadRequest("Missing Connect installation")) } } @@ -212,7 +212,7 @@ class AssociateAtlassianHostUserActionSpec ForgeRemoteContext( fakeForgeInvocationContext, forgeRemoteCredentials.traceId, - forgeRemoteCredentials.spanId, + forgeRemoteCredentials.spanId ), forgeRemoteRequest ) @@ -267,7 +267,7 @@ class AssociateAtlassianHostUserActionSpec ForgeRemoteContext( fakeForgeInvocationContext, forgeRemoteCredentials.traceId, - forgeRemoteCredentials.spanId, + forgeRemoteCredentials.spanId ), forgeRemoteRequest ) @@ -304,7 +304,7 @@ class AssociateAtlassianHostUserActionSpec } } - "fail to refine if no Connect mapping exists" in { + "successfully refine to ForgeRemoteAssociateMaybeAtlassianHostUserRequest if no Connect mapping exists" in { forAll( forgeInvocationTokenGen(fakeForgeInvocationContext, keyId, privateKey) ) { invocationToken => @@ -324,7 +324,7 @@ class AssociateAtlassianHostUserActionSpec ForgeRemoteContext( fakeForgeInvocationContext, forgeRemoteCredentials.traceId, - forgeRemoteCredentials.spanId, + forgeRemoteCredentials.spanId ), forgeRemoteRequest ) @@ -336,7 +336,12 @@ class AssociateAtlassianHostUserActionSpec val result = await { refiner.refine(forgeRemoteContextRequest) } - result mustBe Left(BadRequest(s"Missing Connect mapping")) + result mustBe Right( + ForgeRemoteAssociateMaybeAtlassianHostUserRequest( + None, + forgeRemoteContextRequest + ) + ) } } @@ -360,7 +365,7 @@ class AssociateAtlassianHostUserActionSpec ForgeRemoteContext( fakeForgeInvocationContext, forgeRemoteCredentials.traceId, - forgeRemoteCredentials.spanId, + forgeRemoteCredentials.spanId ), forgeRemoteRequest )