Vai al contenuto principale
L’SDK fornisce API programmatiche che ti consentono di compilare, distribuire, installare e disinstallare la tua app dal codice di test. In combinazione con Vitest e i client API tipizzati, puoi scrivere test di integrazione che verificano che la tua app funzioni end-to-end contro un server Twenty reale.

Uso dei pacchetti npm

Puoi installare e usare qualsiasi pacchetto npm nella tua app. Sia le funzioni logiche sia i componenti front-end vengono impacchettati con esbuild, che incorpora tutte le dipendenze nell’output — non sono necessari i node_modules a runtime.

Installazione di un pacchetto

Quindi importalo nel tuo codice:
src/logic-functions/fetch-data.ts
Lo stesso vale per i componenti front-end:
src/front-components/chart.tsx

Come funziona il bundling

La fase di build usa esbuild per produrre un singolo file autonomo per ogni funzione logica e per ogni componente front-end. Tutti i pacchetti importati sono incorporati nel bundle. Le funzioni logiche vengono eseguite in un ambiente Node.js. I moduli integrati di Node (fs, path, crypto, http, ecc.) sono disponibili e non necessitano di essere installati. I componenti front-end vengono eseguiti in un Web Worker. I moduli integrati di Node non sono disponibili — solo le API del browser e i pacchetti npm che funzionano in un ambiente browser. Entrambi gli ambienti hanno twenty-client-sdk/core e twenty-client-sdk/metadata disponibili come moduli preforniti — questi non vengono inclusi nel bundle ma vengono risolti a runtime dal server.

Impostazione

L’app generata tramite scaffolding include già Vitest. Se la configuri manualmente, installa le dipendenze:
Crea un vitest.config.ts alla radice della tua app:
vitest.config.ts
Crea un file di configurazione globale che verifichi che il server sia raggiungibile, scriva una configurazione di test per l’SDK (~/.twenty/config.test.json) e sincronizzi l’app prima dell’esecuzione dei test:
src/__tests__/global-setup.ts

API programmatiche dell’SDK

Il sottopercorso twenty-sdk/cli esporta funzioni che puoi chiamare direttamente dal codice di test: Ogni funzione restituisce un oggetto risultato con success: boolean e data oppure error.

Scrivere un test di integrazione

Ecco un esempio completo che compila, distribuisce e installa l’app, quindi verifica che compaia nello spazio di lavoro:
src/__tests__/app-install.integration-test.ts

Esecuzione dei test

Assicurati che il tuo server Twenty locale sia in esecuzione, quindi:
Oppure in modalità watch durante lo sviluppo:

Controllo dei tipi

Puoi anche eseguire il controllo dei tipi sulla tua app senza eseguire i test:
Questo esegue tsc --noEmit sul file tsconfig.json della tua app e riporta eventuali errori di tipo. Le app generate dallo scaffolder includono anche uno script yarn typecheck che copre anche i file di test (tsconfig.spec.json).

CI con GitHub Actions

Lo strumento di scaffolding genera un workflow pronto all’uso in .github/workflows/ci.yml. A ogni push su main e a ogni pull request, avvia un server Twenty effimero nel runner (tramite l’azione twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test), quindi esegue yarn lint, yarn typecheck, yarn test:unit e yarn test con TWENTY_API_URL / TWENTY_API_KEY che puntano a quel server. Non sono necessari segreti e puoi fissare la versione del server tramite la variabile di ambiente TWENTY_VERSION all’inizio del workflow. Vedi Pubblicazione → CI/CD automatizzato per una spiegazione completa dei tre workflow generati dallo scaffolder (ci.yml, la pipeline di deploy cd.yml e publish.yml per la pubblicazione su npm).