Le double # fait échouer la validation du paramètre d’objet dans le cœur (pas ce TC en soi).
mauvais URI (n'est pas un URI ?) : "https://matrix.to/#/#matrix-meta-chat:fedoraproject.org" (URI::InvalidURIError)
Ce n’est pas strictement un URI valide, vous devrez donc encoder le fragment.
Ici ; utiliser https://matrix.to/#/%23matrix-meta-chat:fedoraproject.org fonctionnera.
En regardant le code :
https://github.com/discourse/discourse/blob/main/lib/theme_settings_object_validator.rb#L191-L193
is_valid_url est défini ici :
Vous pouvez voir qu’ils ont déjà une autre fonction pour gérer cette situation et qu’elle est utilisée ailleurs :
Je pense qu’il est raisonnable d’utiliser relaxed_parse pour la validation de l’URL de l’objet de thème.
Par exemple : if validations&.dig(:url) && !UrlHelper.relaxed_parse?(value)