J’ai eu un tas de tests qui ont échoué avec des erreurs comme celle-ci :
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
et il semble que ce soit le problème :
fab!(:the_group) { Fabricate(:group) }
Tout cela fonctionnait jusqu’à récemment. J’ai vu cela sur un autre plugin sur lequel je travaillais et, je pense, j’ai réussi à définir un nom aléatoire moi-même, mais cela fonctionnait, je crois, hier encore.
Quelque chose a-t-il changé, ou ai-je fait une bêtise par erreur ?
EDIT : Avec l’aide de Claude et du bot d’aide Discourse, j’ai essayé de remplacer le fab ci-dessus par
Fabricator(:the_group) do
name { sequence(:group_name) { |i| "Test Group #{i}" } }
end
mais je n’ai pas réussi à comprendre comment faire.
J’ai ensuite utilisé
let(:the_group) { Fabricate(:group) }
au lieu du !fab ci-dessus et cela a réduit le nombre d’échecs de 12 à 1, mais cela échoue toujours avec
1) Pfaffmanager::ServersController servers admin can get servers owned by a group
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
Je ne pense pas que quoi que ce soit autour de ces tests ait changé depuis hier 10h30 CDT, date de mon dernier commit.
J’ai rétabli une version antérieure et maintenant cela échoue avec
1) Pfaffmanager::ServersController servers includes groups that the user is in
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
et je l’ai exécuté à nouveau sans rien changer et maintenant cela échoue sur
1) Pfaffmanager::ServersController servers can update group id if group owner
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
Il semble donc que cela échoue sur un test, et que ce soit aléatoire ?