run-api-e2e-tests

Run e2e tests for the API service. Use when the user wants to run API E2E tests.

38,786 stars

Best use case

run-api-e2e-tests is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Run e2e tests for the API service. Use when the user wants to run API E2E tests.

Teams using run-api-e2e-tests should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/run-api-e2e-tests/SKILL.md --create-dirs "https://raw.githubusercontent.com/novuhq/novu/main/.cursor/skills/run-api-e2e-tests/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/run-api-e2e-tests/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How run-api-e2e-tests Compares

Feature / Agentrun-api-e2e-testsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Run e2e tests for the API service. Use when the user wants to run API E2E tests.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Run API E2E Tests

Run novu-v2 e2e tests for the API service. Tests are located in `apps/api`.

## Running All Tests

```bash
pnpm test:e2e:novu-v2
```

This runs all e2e tests with the novu-v2 pattern across both regular and enterprise test suites.

## Running a Specific Test

When the user mentions a specific test or feature:

1. **Find the test file** using Glob with pattern `*.e2e.ts` or `*.e2e-ee.ts` in `apps/api`
2. **Extract the filename** (without extension) - e.g., `trigger-event-preferences.e2e.ts` → `trigger-event-preferences`
3. **Determine the test location:**
   - Check if the test is in `src/` or `e2e/enterprise/`
4. **Run the appropriate command** based on test location:

**For tests in `src/` directory:**
```bash
pnpm exec cross-env NODE_ENV=test CI_EE_TEST=true CLERK_ENABLED=true NODE_OPTIONS=--max_old_space_size=8192 mocha --timeout 30000 --retries 3 --grep '#novu-v2' --require ./swc-register.js --exit --file e2e/setup.ts 'src/**/<name-of-the-test>.e2e{,-ee}.ts'
```

**For tests in `e2e/enterprise/` directory:**
```bash
pnpm exec cross-env NODE_ENV=test CI_EE_TEST=true CLERK_ENABLED=true NODE_OPTIONS=--max_old_space_size=8192 mocha --timeout 30000 --retries 3 --grep '#novu-v2' --require ./swc-register.js --exit --file e2e/setup.ts 'e2e/enterprise/**/<name-of-the-test>.e2e.ts'
```

Replace `<name-of-the-test>` with the actual test filename (without extension).

## Examples

**Running trigger-event-preferences test (in src/):**
```bash
# Found: apps/api/src/app/events/e2e/trigger-event-preferences.e2e.ts
pnpm exec cross-env NODE_ENV=test CI_EE_TEST=true CLERK_ENABLED=true NODE_OPTIONS=--max_old_space_size=8192 mocha --timeout 30000 --retries 3 --grep '#novu-v2' --require ./swc-register.js --exit --file e2e/setup.ts 'src/**/trigger-event-preferences.e2e{,-ee}.ts'
```

**Running enterprise billing test:**
```bash
# Found: apps/api/e2e/enterprise/billing/billing.e2e.ts
pnpm exec cross-env NODE_ENV=test CI_EE_TEST=true CLERK_ENABLED=true NODE_OPTIONS=--max_old_space_size=8192 mocha --timeout 30000 --retries 3 --grep '#novu-v2' --require ./swc-register.js --exit --file e2e/setup.ts 'e2e/enterprise/**/billing.e2e.ts'
```

## Important Notes

- Always run commands from `apps/api` directory
- For specific tests, use the full mocha command (not pnpm script) to target the exact test file
- Report test results clearly to the user

Related Skills

Enterprise Submodule Setup

38786
from novuhq/novu

Use this skill when making changes to the enterprise submodule (`.source/`) or enterprise packages (`enterprise/packages/*`), or when the enterprise submodule needs to be initialized/updated.

better-auth-best-practices

38786
from novuhq/novu

Skill for integrating Better Auth - the comprehensive TypeScript authentication framework.

react-email

38786
from novuhq/novu

Use when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.

email-best-practices

38786
from novuhq/novu

Use when building email features, emails going to spam, high bounce rates, setting up SPF/DKIM/DMARC authentication, implementing email capture, ensuring compliance (CAN-SPAM, GDPR, CASL), handling webhooks, retry logic, or deciding transactional vs marketing.

odoo-automated-tests

31392
from sickn33/antigravity-awesome-skills

Write and run Odoo automated tests using TransactionCase, HttpCase, and browser tour tests. Covers test data setup, mocking, and CI integration.

creating-oracle-to-postgres-migration-integration-tests

28865
from github/awesome-copilot

Creates integration test cases for .NET data access artifacts during Oracle-to-PostgreSQL database migrations. Generates DB-agnostic xUnit tests with deterministic seed data that validate behavior consistency across both database systems. Use when creating integration tests for a migrated project, generating test coverage for data access layers, or writing Oracle-to-PostgreSQL migration validation tests.

e2e-tests-studio

22487
from mastra-ai/mastra

REQUIRED when modifying any file in packages/playground-ui or packages/playground. Triggers on: React component creation/modification/refactoring, UI changes, new playground features, bug fixes affecting studio UI. Generates Playwright E2E tests that validate PRODUCT BEHAVIOR, not just UI states.

generating-unit-tests

1868
from jeremylongshore/claude-code-plugins-plus-skills

Test automatically generate comprehensive unit tests from source code covering happy paths, edge cases, and error conditions. Use when creating test coverage for functions, classes, or modules. Trigger with phrases like "generate unit tests", "create tests for", or "add test coverage".

managing-snapshot-tests

1868
from jeremylongshore/claude-code-plugins-plus-skills

Create and validate component snapshots for UI regression testing. Use when performing specialized testing. Trigger with phrases like "update snapshots", "test UI snapshots", or "validate component snapshots".

running-smoke-tests

1868
from jeremylongshore/claude-code-plugins-plus-skills

Execute fast smoke tests validating critical functionality after deployment. Use when performing specialized testing. Trigger with phrases like "run smoke tests", "quick validation", or "test critical paths".

tracking-regression-tests

1868
from jeremylongshore/claude-code-plugins-plus-skills

Track and manage regression test suites across releases. Use when performing specialized testing. Trigger with phrases like "track regressions", "manage regression suite", or "validate against baseline".

running-performance-tests

1868
from jeremylongshore/claude-code-plugins-plus-skills

Execute load testing, stress testing, and performance benchmarking. Use when performing specialized testing. Trigger with phrases like "run load tests", "test performance", or "benchmark the system".