Impossibile per un plugin usare `type: group` e passare le specifiche?

Se un plugin utilizza un type: group, deve avere il gruppo creato (ad esempio, quando il database viene migrato, o forse in after_initialize) per superare i test (altrimenti il test fallisce perché le impostazioni includono un gruppo che non esiste). La mia soluzione è stata trasformare queste impostazioni type: group in type: text. In questo modo, le impostazioni non falliscono perché il gruppo non esiste; posso creare i gruppi nei miei test con let!, e i gruppi vengono rimossi quando vengono eseguiti i test per Group.

Se esiste un modo migliore, sarei felice di saperlo. A dire il vero, in questo caso, probabilmente non avrò mai bisogno di cambiare il gruppo utilizzato per ciascuno di questi scopi, quindi potrebbero essere semplicemente codificati nel plugin e non essere affatto delle impostazioni.

Riflessioni su come ho scoperto quanto sopra

Ho un plugin che richiede un insieme di gruppi. Quando un utente viene aggiunto al gruppo, viene eseguita un’azione nel mio modello. Funziona perfettamente nei database di produzione e sviluppo. Evviva. :tada:

Il problema è che, per i test, o i gruppi vengono creati (ho provato a farlo in una funzione chiamata in after_initialize e con fixture eseguite durante la migrazione), il che interrompe i test principali per Group (che, ad esempio, si aspettano un certo numero di gruppi preesistenti), oppure i gruppi non vengono creati, il che interrompe i miei test.

Ho sovrascritto refresh_automatic_groups nel modello Group in modo che elimini i miei gruppi. Questo ha risolto tutti i test tranne uno, poiché i nomi dei miei gruppi includono alcune stringhe presenti anche in quel test, che non chiama refresh_automatic_groups.

Quindi la mia soluzione è stata utilizzare solo nomi che non rompono quel test.

EDIT (Ancora): ma ora ho ancora errori in destroy_task_spec.rb e nel group_controller.

C’è qualche trucco semplice che mi sfugge o devo semplicemente evitare che questo plugin crei gruppi automaticamente?