diff --git a/services/invitations/src/simcore_service_invitations/services/invitations.py b/services/invitations/src/simcore_service_invitations/services/invitations.py index d6065b08d0c..6200dcf6408 100644 --- a/services/invitations/src/simcore_service_invitations/services/invitations.py +++ b/services/invitations/src/simcore_service_invitations/services/invitations.py @@ -64,8 +64,7 @@ def _build_link( r = URL("/registration").include_query_params(invitation=code_url_safe) # Adds query to fragment - base_url = f"{base_url}/" - url = URL(base_url).replace(fragment=f"{r}") + url = URL(f"{base_url.rstrip('/')}/").replace(fragment=f"{r}") return TypeAdapter(HttpUrl).validate_python(f"{url}") diff --git a/services/invitations/tests/unit/api/test_api_invitations.py b/services/invitations/tests/unit/api/test_api_invitations.py index 751a0a96bb9..84f97fb45fe 100644 --- a/services/invitations/tests/unit/api/test_api_invitations.py +++ b/services/invitations/tests/unit/api/test_api_invitations.py @@ -41,6 +41,10 @@ def test_create_invitation( assert invitation.guest == invitation_input.guest assert invitation.trial_account_days == invitation_input.trial_account_days + # checks issue with `//` reported in https://github.com/ITISFoundation/osparc-simcore/issues/7055 + assert invitation.invitation_url + assert invitation.invitation_url.path == "/" + assert invitation.product if invitation_input.product: assert invitation.product == invitation_input.product