Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.activepieces.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Testing pieces is optional but recommended for complex logic. Pieces can be tested using Vitest with the createMockActionContext helper from the framework. For a full working example, see the text-helper piece tests on GitHub.

Setup

1. Add vitest to your piece

Add vitest as a dev dependency in your piece’s package.json and add a test script:
{
  "scripts": {
    "build": "tsc -p tsconfig.lib.json && cp package.json dist/",
    "lint": "eslint 'src/**/*.ts'",
    "test": "vitest run"
  },
  "devDependencies": {
    "vitest": "3.0.8"
  }
}

2. Create a vitest config

Create vitest.config.ts in your piece root:
import path from 'path'
import { defineConfig } from 'vitest/config'

const repoRoot = path.resolve(__dirname, '../../../..')

export default defineConfig({
  test: {
    globals: true,
    environment: 'node',
  },
  resolve: {
    alias: {
      '@activepieces/shared': path.resolve(repoRoot, 'packages/shared/src/index.ts'),
      '@activepieces/pieces-framework': path.resolve(repoRoot, 'packages/pieces/framework/src/index.ts'),
      '@activepieces/pieces-common': path.resolve(repoRoot, 'packages/pieces/common/src/index.ts'),
    },
  },
})

3. Write tests

Create a test/ directory and add .test.ts files:
import { createMockActionContext } from '@activepieces/pieces-framework';
import { myAction } from '../src/lib/actions/my-action';

describe('myAction', () => {
  test('does something', async () => {
    const ctx = createMockActionContext({
      propsValue: {
        inputField: 'test value',
      },
    });

    const result = await myAction.run(ctx);
    expect(result).toBe('expected output');
  });
});

4. Run tests

# Run tests for a specific piece
npx turbo test --filter=@activepieces/piece-text-helper

# Run tests directly from the piece directory
cd packages/pieces/core/text-helper
npx vitest run