Skip to main content
SDK-ul oferă API-uri programatice care vă permit să construiți, să distribuiți, să instalați și să dezinstalați aplicația din codul de test. Combinat cu Vitest și clienții API tipizați, puteți scrie teste de integrare care verifică faptul că aplicația funcționează de la un cap la altul pe un server Twenty real.

Utilizarea pachetelor npm

Puteți instala și utiliza orice pachet npm în aplicația dvs. Atât funcțiile logice, cât și componentele frontend sunt împachetate cu esbuild, care integrează toate dependențele în output — nu sunt necesare node_modules la rulare.

Instalarea unui pachet

Apoi importați-l în codul dvs.:
src/logic-functions/fetch-data.ts
Același lucru funcționează și pentru componentele frontend:
src/front-components/chart.tsx

Cum funcționează împachetarea

Pasul de build folosește esbuild pentru a produce un singur fișier autonom pentru fiecare funcție logică și pentru fiecare componentă frontend. Toate pachetele importate sunt integrate în bundle. Funcțiile logice rulează într-un mediu Node.js. Modulele built-in Node (fs, path, crypto, http etc.) sunt disponibile și nu trebuie instalate. Componentele frontend rulează într-un Web Worker. Modulele built-in Node nu sunt disponibile — doar pachetele npm care funcționează într-un mediu de browser. Reține că sandbox-ul implementează un DOM parțial, astfel încât un pachet se poate construi fără erori, dar totuși poate eșua la execuție; vezi Limitări curente. Ambele medii au twenty-client-sdk/core și twenty-client-sdk/metadata disponibile ca module pre-furnizate — acestea nu sunt incluse în bundle, ci sunt rezolvate la rulare de către server.

Configurare

Aplicația generată (scaffolded) include deja Vitest. Dacă o configurați manual, instalați dependențele:
Creați un vitest.config.ts în rădăcina aplicației:
vitest.config.ts
Creează un fișier global de configurare inițială care verifică faptul că serverul este accesibil, scrie un fișier de configurare de test pentru SDK (~/.twenty/config.test.json) și sincronizează aplicația înainte ca testele să ruleze:
src/__tests__/global-setup.ts

API-uri SDK programatice

Subcalea twenty-sdk/cli exportă funcții pe care le puteți apela direct din codul de test: Fiecare funcție returnează un obiect rezultat cu success: boolean și fie data, fie error.

Scrierea unui test de integrare

Iată un exemplu complet care construiește, distribuie și instalează aplicația, apoi verifică faptul că aceasta apare în spațiul de lucru:
src/__tests__/app-install.integration-test.ts

Rularea testelor

Asigurați-vă că serverul Twenty local rulează, apoi:
Sau în modul watch în timpul dezvoltării:

Verificarea tipurilor

Puteți rula și verificarea tipurilor pe aplicație fără a rula testele:
Aceasta rulează tsc --noEmit pe fișierul tsconfig.json al aplicației și raportează orice erori de tip. Aplicațiile create cu scaffolderul includ, de asemenea, un script yarn typecheck care acoperă și fișierele de test (tsconfig.spec.json).

CI cu GitHub Actions

Scaffolderul generează un workflow gata de utilizare la .github/workflows/ci.yml. La fiecare push pe main și la fiecare pull request, acesta pornește un server Twenty efemer în runner (prin acțiunea twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test), apoi rulează yarn lint, yarn typecheck, yarn test:unit și yarn test cu TWENTY_API_URL / TWENTY_API_KEY îndreptate către acel server. Nu sunt necesare secrete și poți fixa versiunea serverului prin variabila de mediu TWENTY_VERSION din partea de sus a workflow-ului. Vezi Publicare → CI/CD automatizat pentru un ghid complet al celor trei workflow-uri create cu scaffolderul (ci.yml, pipeline-ul de deploy cd.yml și publish.yml pentru publicare pe npm).