Skip to main content
O SDK fornece APIs programáticas que permitem compilar, implantar, instalar e desinstalar seu aplicativo a partir de código de teste. Em conjunto com Vitest e os clientes de API tipados, você pode escrever testes de integração que verificam que seu aplicativo funciona de ponta a ponta em um servidor Twenty real.

Usando pacotes npm

Você pode instalar e usar qualquer pacote npm no seu app. Tanto funções lógicas quanto componentes de front-end são empacotados com esbuild, que incorpora todas as dependências na saída — nenhum node_modules é necessário em tempo de execução.

Instalando um pacote

Em seguida, importe-o no seu código:
src/logic-functions/fetch-data.ts
O mesmo vale para componentes de front-end:
src/front-components/chart.tsx

Como o empacotamento funciona

A etapa de build usa o esbuild para produzir um único arquivo independente por função lógica e por componente de front-end. Todos os pacotes importados são incorporados ao bundle. Funções lógicas são executadas em um ambiente Node.js. Módulos nativos do Node (fs, path, crypto, http, etc.) estão disponíveis e não precisam ser instalados. Componentes de front-end são executados em um Web Worker. Módulos nativos do Node não estão disponíveis — apenas APIs do navegador e pacotes npm que funcionam em um ambiente de navegador. Ambos os ambientes têm twenty-client-sdk/core e twenty-client-sdk/metadata disponíveis como módulos pré-fornecidos — eles não são empacotados, mas resolvidos em tempo de execução pelo servidor.

Configuração

O aplicativo gerado pelo scaffolder já inclui o Vitest. Se você configurá-lo manualmente, instale as dependências:
Crie um vitest.config.ts na raiz do seu aplicativo:
vitest.config.ts
Crie um arquivo de configuração global que verifique se o servidor está acessível, escreva uma configuração de teste para o SDK (~/.twenty/config.test.json) e sincronize o app antes da execução dos testes:
src/__tests__/global-setup.ts

APIs programáticas do SDK

O subcaminho twenty-sdk/cli exporta funções que você pode chamar diretamente a partir do código de teste: Cada função retorna um objeto de resultado com success: boolean e data ou error.

Escrevendo um teste de integração

Aqui está um exemplo completo que compila, implanta e instala o aplicativo e, em seguida, verifica se ele aparece no espaço de trabalho:
src/__tests__/app-install.integration-test.ts

Executando testes

Certifique-se de que seu servidor Twenty local esteja em execução e, em seguida:
Ou no modo watch durante o desenvolvimento:

Verificação de tipos

Você também pode executar a verificação de tipos no seu aplicativo sem executar os testes:
Isso executa tsc --noEmit no tsconfig.json do seu app e informa quaisquer erros de tipo. Os apps criados pelo scaffold também incluem um script yarn typecheck que também cobre arquivos de teste (tsconfig.spec.json).

CI com GitHub Actions

O gerador de scaffold cria um workflow pronto para uso em .github/workflows/ci.yml. A cada push para main e a cada pull request, ele inicia um servidor Twenty efêmero no runner (por meio da action twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test) e então executa yarn lint, yarn typecheck, yarn test:unit e yarn test com TWENTY_API_URL / TWENTY_API_KEY apontando para esse servidor. Nenhum secret é necessário e você pode fixar a versão do servidor por meio da variável de ambiente TWENTY_VERSION no topo do workflow. Consulte Publicação → CI/CD automatizado para um passo a passo completo dos três workflows criados pelo scaffold (ci.yml, o pipeline de deploy cd.yml e publish.yml para publicação no npm).