Skip to main content
SDK, test kodundan uygulamanızı derlemenize, dağıtmanıza, yüklemenize ve kaldırmanıza olanak tanıyan programatik API’ler sağlar. Tiplenmiş API istemcileriyle birlikte Vitest kullanarak, uygulamanızın gerçek bir Twenty sunucusunda uçtan uca çalıştığını doğrulayan entegrasyon testleri yazabilirsiniz.

npm paketlerini kullanma

Uygulamanızda herhangi bir npm paketini yükleyip kullanabilirsiniz. Hem mantık işlevleri hem de ön uç bileşenleri, tüm bağımlılıkları çıktıya satır içi olarak ekleyen esbuild ile paketlenir — çalışma zamanında node_modules gerekmez.

Bir paketi yükleme

Ardından kodunuza içe aktarın:
src/logic-functions/fetch-data.ts
Aynısı ön uç bileşenleri için de geçerlidir:
src/front-components/chart.tsx

Paketleme nasıl çalışır

Derleme adımı, her mantık işlevi ve her ön uç bileşeni için tek bir bağımsız dosya üretmek üzere esbuild kullanır. Tüm içe aktarılan paketler pakete satır içi eklenir. Mantık işlevleri, Node.js ortamında çalışır. Node yerleşik modülleri (fs, path, crypto, http vb.) kullanılabilir ve kurulmaları gerekmez. Ön uç bileşenleri, bir Web Worker içinde çalışır. Node’un yerleşik modülleri kullanılamaz — yalnızca tarayıcı ortamında çalışan npm paketleri kullanılabilir. Korumalı alanın kısmi bir DOM uyguladığını unutmayın; bu nedenle bir paket hatasız derlenip çalışma zamanında yine de başarısız olabilir. Bkz. Geçerli kısıtlamalar. Her iki ortamda da twenty-client-sdk/core ve twenty-client-sdk/metadata önceden sağlanmış modüller olarak mevcuttur — bunlar paketlenmez, ancak çalışma zamanında sunucu tarafından çözülür.

Kurulum

İskelet aracıyla oluşturulan uygulama zaten Vitest’i içerir. Manuel kurulum yaparsanız, bağımlılıkları yükleyin:
Uygulamanızın kök dizininde bir vitest.config.ts oluşturun:
vitest.config.ts
Sunucunun erişilebilir olduğunu doğrulayan, SDK için bir test yapılandırması (~/.twenty/config.test.json) yazan ve testler çalışmadan önce uygulamayı eşitleyen genel bir kurulum dosyası oluşturun:
src/__tests__/global-setup.ts

Programatik SDK API’leri

twenty-sdk/cli alt yolu, test kodundan doğrudan çağırabileceğiniz fonksiyonları dışa aktarır: Her fonksiyon, success: boolean ile birlikte data veya error içeren bir sonuç nesnesi döndürür.

Bir entegrasyon testi yazma

İşte uygulamayı derleyen, dağıtan ve yükleyen; ardından çalışma alanında göründüğünü doğrulayan tam bir örnek:
src/__tests__/app-install.integration-test.ts

Testleri çalıştırma

Yerel Twenty sunucunuzun çalıştığından emin olun, ardından:
Veya geliştirme sırasında izleme modunda:

Tip denetimi

Ayrıca testleri çalıştırmadan uygulamanızda tip denetimi çalıştırabilirsiniz:
Bu, uygulamanızın tsconfig.json dosyasına göre tsc --noEmit komutunu çalıştırır ve tüm tip hatalarını raporlar. İskelet olarak oluşturulan uygulamalar ayrıca test dosyalarını da kapsayan (tsconfig.spec.json) bir yarn typecheck betiği ile birlikte gelir.

GitHub Actions ile CI

İskelet oluşturucu, .github/workflows/ci.yml konumunda kullanıma hazır bir iş akışı üretir. main dalına yapılan her itmede ve her çekme isteğinde, çalıştırıcı içinde geçici bir Twenty sunucusu başlatır (twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test eylemi aracılığıyla) ve ardından yarn lint, yarn typecheck, yarn test:unit ve yarn test komutlarını, TWENTY_API_URL / TWENTY_API_KEY bu sunucuyu işaret edecek şekilde çalıştırır. Herhangi bir gizli bilgi gerekmez ve iş akışının en üstündeki TWENTY_VERSION ortam değişkeni aracılığıyla sunucu sürümünü sabitleyebilirsiniz. Üç iskelet iş akışının (ci.yml, cd.yml dağıtım hattı ve npm yayınlama için publish.yml) eksiksiz adım adım anlatımı için Yayınlama → Otomatik CI/CD bölümüne bakın.