メインコンテンツへスキップ
SDK は、テストコードからアプリのビルド、デプロイ、インストール、アンインストールを可能にするプログラム用 API を提供します。 Vitest と型付き API クライアントを組み合わせることで、実際の Twenty サーバーに対してエンドツーエンドで動作を検証する統合テストを作成できます。

npm パッケージの使用

アプリで任意の npm パッケージをインストールして使用できます。 ロジック関数とフロントコンポーネントはどちらも esbuild でバンドルされ、依存関係はすべて出力にインライン化されます—実行時に node_modules は不要です。

パッケージのインストール

次に、コードでインポートします:
src/logic-functions/fetch-data.ts
フロントコンポーネントでも同様に機能します:
src/front-components/chart.tsx

バンドルの仕組み

ビルドステップでは esbuild を使用して、各ロジック関数および各フロントコンポーネントごとに自己完結した単一ファイルを生成します。 インポートされたパッケージはすべてバンドルにインライン化されます。 ロジック関数は Node.js 環境で実行されます。 Node の組み込みモジュール(fspathcryptohttp など) は利用可能で、インストールは不要です。 フロントコンポーネントは Web Worker で実行されます。 Node の組み込みモジュールは利用できません—ブラウザー環境で動作するブラウザー API と npm パッケージのみが使用できます。 どちらの環境でも、twenty-client-sdk/core および twenty-client-sdk/metadata が事前提供モジュールとして利用可能です—これらはバンドルされず、実行時にサーバーによって解決されます。

セットアップ

スキャフォルドされたアプリにはすでに Vitest が含まれています。 手動で設定する場合は、依存関係をインストールしてください:
アプリのルートに vitest.config.ts を作成します:
vitest.config.ts
サーバーに到達可能であることを検証し、SDK 用のテスト設定(~/.twenty/config.test.json)を書き込み、テストの実行前にアプリを同期するグローバルセットアップファイルを作成します。
src/__tests__/global-setup.ts

プログラム用 SDK API

twenty-sdk/cli サブパスは、テストコードから直接呼び出せる関数をエクスポートします: 各関数は、success: booleandata または error のいずれかを含む結果オブジェクトを返します。

統合テストの作成

アプリをビルド、デプロイ、インストールし、その後ワークスペースに表示されることを検証する完全な例を次に示します:
src/__tests__/app-install.integration-test.ts

テストの実行

ローカルの Twenty サーバーが起動していることを確認し、次を実行します:
また、開発中はウォッチモードでも実行できます:

型チェック

テストを実行せずに、アプリの型チェックのみを実行することもできます:
これは、あなたのアプリの tsconfig.json に対して tsc --noEmit を実行し、型エラーを報告します。 スキャフォルドされたアプリには、テストファイル(tsconfig.spec.json)も対象とする yarn typecheck スクリプトも同梱されています。

GitHub Actions による CI

スキャフォルダーは、すぐに使えるワークフローを .github/workflows/ci.yml に生成します。 main へのすべてのプッシュおよびすべてのプルリクエスト時に、ランナー内で一時的な Twenty サーバーを起動(twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test アクション経由)し、そのサーバーを指すように TWENTY_API_URL / TWENTY_API_KEY を設定した上で、yarn lintyarn typecheckyarn test:unityarn test を実行します。 シークレットは一切不要で、ワークフローの先頭にある TWENTY_VERSION 環境変数を通じてサーバーバージョンを固定できます。 スキャフォルドされた 3 つのワークフロー(ci.ymlcd.yml デプロイパイプライン、npm パブリッシング用の publish.yml)の詳細な手順については、Publishing → Automated CI/CD を参照してください。