Двойной # приводит к сбою валидации настройки объекта в ядре (не в самом этом тест-кейсе).
bad URI(is not URI?): "https://matrix.to/#/#matrix-meta-chat:fedoraproject.org" (URI::InvalidURIError)
Это не является строго корректным URI, поэтому фрагмент необходимо закодировать.
Вот так; использование https://matrix.to/#/%23matrix-meta-chat:fedoraproject.org сработает.
Посмотрим на код:
https://github.com/discourse/discourse/blob/main/lib/theme_settings_object_validator.rb#L191-L193
is_valid_url определён здесь:
Вы можете увидеть, что у них уже есть другая функция для обработки такой ситуации, и она используется в других местах:
Полагаю, разумно использовать relaxed_parse для валидации URL объекта темы.
Например: if validations&.dig(:url) && !UrlHelper.relaxed_parse?(value)