Voici un diff pour l’intégrer dans spec/rails_helper de Discourse :
Cependant, cela échoue sur mon environnement de développement basé sur Docker :
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of database discourse_test
Cela est dû au fait que maintain_test_schema! utilise db:test:prepare et tente de supprimer la base de données de test en premier, ce à quoi (je pense) l’utilisateur discourse sur un environnement basé sur Docker n’a pas accès.
Pourrait quelqu’un avec un environnement de développement natif essayer cela ? Si cela fonctionne, peut-être que ce changement vaut la peine d’être envisagé ?
J’ai appliqué ce diff, supprimé mes bases de données, puis exécuté bin/rails db:create bin/rails db:migrate
Ensuite, j’ai choisi une spécification au hasard :
▶ bundle exec rspec spec/requests/permalinks_controller_spec.rb
Une erreur s'est produite lors du chargement de ./spec/requests/permalinks_controller_spec.rb.
Erreur de fichier : Group.find_by(id: id)
ActiveRecord::StatementInvalid:
PG::UndefinedTable: ERREUR : la relation "groups" n'existe pas
LIGNE 8 : WHERE a.attrelid = '"groups"'::regclass
^
# ./app/models/group.rb:532:in `lookup_group'
# ./app/models/group.rb:516:in `block in ensure_automatic_groups!'
# ./app/models/group.rb:515:in `each_key'
# ./app/models/group.rb:515:in `ensure_automatic_groups!'
# (eval):3:in `block (2 levels) in run_file'
# ./spec/rails_helper.rb:79:in `<top (required)>'
# ./spec/requests/permalinks_controller_spec.rb:3:in `require'
# ./spec/requests/permalinks_controller_spec.rb:3:in `<top (required)>'
# ------------------
# --- Cause : ---
# PG::UndefinedTable:
# ERREUR : la relation "groups" n'existe pas
# LIGNE 8 : WHERE a.attrelid = '"groups"'::regclass
# ^
# ./app/models/group.rb:532:in `lookup_group'
Aucun exemple trouvé.
Terminé en 0,00003 seconde (les fichiers ont mis 1,6 seconde à charger)
0 exemples, 0 échec, 1 erreur survenue en dehors des exemples