Passer au contenu principal
Le SDK fournit des API programmatiques qui vous permettent de construire, déployer, installer et désinstaller votre application depuis le code de test. Combiné avec Vitest et les clients d’API typés, vous pouvez écrire des tests d’intégration qui vérifient que votre application fonctionne de bout en bout sur un serveur Twenty réel.

Utilisation de packages npm

Vous pouvez installer et utiliser n’importe quel package npm dans votre application. Les fonctions logiques et les composants frontaux sont tous deux empaquetés avec esbuild, qui intègre toutes les dépendances dans la sortie — aucun node_modules n’est nécessaire à l’exécution.

Installation d’un package

Puis importez-le dans votre code :
src/logic-functions/fetch-data.ts
Il en va de même pour les composants frontaux :
src/front-components/chart.tsx

Comment fonctionne le bundling

L’étape de build utilise esbuild pour produire un seul fichier autonome par fonction logique et par composant frontal. Tous les packages importés sont intégrés dans le bundle. Les fonctions logiques s’exécutent dans un environnement Node.js. Les modules intégrés de Node (fs, path, crypto, http, etc.) sont disponibles et n’ont pas besoin d’être installés. Les composants frontaux s’exécutent dans un Web Worker. Les modules intégrés de Node ne sont pas disponibles — seules les API du navigateur et les packages npm qui fonctionnent dans un environnement navigateur sont pris en charge. Les deux environnements disposent de twenty-client-sdk/core et twenty-client-sdk/metadata en tant que modules pré-fournis — ils ne sont pas intégrés au bundle mais résolus à l’exécution par le serveur.

Installation

L’application générée inclut déjà Vitest. Si vous le configurez manuellement, installez les dépendances :
Créez un vitest.config.ts à la racine de votre application :
vitest.config.ts
Créez un fichier de configuration global qui vérifie que le serveur est joignable, écrit une configuration de test pour le SDK (~/.twenty/config.test.json) et synchronise l’application avant l’exécution des tests :
src/__tests__/global-setup.ts

APIs programmatiques du SDK

Le sous-chemin twenty-sdk/cli exporte des fonctions que vous pouvez appeler directement depuis le code de test : Chaque fonction retourne un objet résultat avec success: boolean et soit data soit error.

Écrire un test d’intégration

Voici un exemple complet qui construit, déploie et installe l’application, puis vérifie qu’elle apparaît dans l’espace de travail :
src/__tests__/app-install.integration-test.ts

Exécuter les tests

Assurez-vous que votre serveur Twenty local est en cours d’exécution, puis :
Ou en mode surveillance (watch) pendant le développement :

Vérification des types

Vous pouvez également exécuter une vérification des types sur votre application sans exécuter les tests :
Cela exécute tsc --noEmit sur le tsconfig.json de votre application et signale toute erreur de type. Les applications générées contiennent également un script yarn typecheck qui couvre aussi les fichiers de test (tsconfig.spec.json).

CI avec GitHub Actions

Le générateur crée un workflow prêt à l’emploi dans .github/workflows/ci.yml. À chaque push sur main et à chaque pull request, il lance un serveur Twenty éphémère dans le runner (via l’action twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test), puis exécute yarn lint, yarn typecheck, yarn test:unit et yarn test avec TWENTY_API_URL / TWENTY_API_KEY pointant vers ce serveur. Aucun secret n’est requis, et vous pouvez fixer la version du serveur via la variable d’environnement TWENTY_VERSION en haut du workflow. Voir Publication → CI/CD automatisé pour un guide complet des trois workflows générés (ci.yml, le pipeline de déploiement cd.yml et publish.yml pour la publication sur npm).