context: Object { actionCode: "bid", post: undefined }
Il test non controlla i parametri, quindi questo passa inosservato.
Suppongo che il parametro post dovrebbe essere this.args.post e non this.post.
Ho provato una soluzione alternativa aggiungendo incondizionatamente il componente e facendolo controllare da solo cosa fare, ma sfortunatamente sembra che anche gli argomenti non vengano passati correttamente, quindi sia la soluzione alternativa che un’implementazione normale falliscono anche qui:
Ci sono getter in PostSmallAction per code, createdAt e path, ma (di nuovo) this.post non esiste e anche username() sembra avere un bug (non c’è action_code_who in this.args.post?), quindi questi attributi rimangono vuoti.
Non riesco a trovare un’implementazione esistente “nel mondo reale”. Sono davvero il primo a usarlo?
Hai ragione; il parametro post dovrebbe essere this.args.post invece di this.post.
username è un po’ fuorviante qui. action_code_who è effettivamente corretto ma è utilizzato da alcuni plugin come il plugin assign, quindi non è sempre presente nell’oggetto post. Per ottenere l’utente che ha creato la piccola azione, puoi usare @post.username
Non ero sicuro se potessi apportare modifiche al tuo PR, quindi ho aperto quello qui sotto per affrontare questi problemi:
correggere l’argomento post passato sia al transformer che al componente personalizzato
rinominare l’argomento username in who riducendo al minimo la confusione attorno a questo argomento
aggiungere test per verificare che gli argomenti vengano passati correttamente
Per quanto ne so, la vecchia API non è stata utilizzata in nessuna delle personalizzazioni che tracciamo nei repository all-the-*. Ho aggiunto solo questa per fornire un’alternativa nel caso in cui un self-hoster la stesse utilizzando.