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 — nenhumnode_modules é necessário em tempo de execução.
Instalando um pacote
src/logic-functions/fetch-data.ts
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:vitest.config.ts na raiz do seu aplicativo:
vitest.config.ts
~/.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 subcaminhotwenty-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:Verificação de tipos
Você também pode executar a verificação de tipos no seu aplicativo sem executar os testes: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).