docs

Project areas

Group tests by product, application, service, or package while preserving framework and commit context.

Updated 2026-07-09

On this page

What this controls

Project areas group repository paths into dashboard-level concepts such as Web, Checkout, API, or Engagement.

Areas affect summary metrics, charts, testing levels, churn, timeline changes, tests, files, and contributors. The global area filter is independent from the framework filter.

Project areas do not change test discovery.

Automatic behaviour

Test Chronicle detects direct children beneath these common monorepo roots:

  • apps/*
  • packages/*
  • services/*
  • libs/*

It also detects product-like areas inside common centralized test suites:

  • e2e/*
  • tests/e2e/*
  • playwright/e2e/*
  • cypress/e2e/*
  • features/*
  • tests/integration/*
  • tests/component/*
  • tests/acceptance/*

When the suite path does not have a product folder, Test Chronicle can infer the area from the spec filename.

Automatic areas are shown only when at least two meaningful areas exist. Ordinary single-project repositories therefore keep an uncluttered dashboard.

Examples:

apps/web/**        → Web
apps/admin/**      → Admin
packages/cart/**   → Cart
services/api/**    → API

Centralized suite examples:

tests/e2e/checkout.spec.ts   -> Checkout
e2e/billing/refunds.spec.ts  -> Billing
features/team-management/**  -> Team Management

Saved areas

Saved areas override automatic detection. Use them when automatic areas need a clearer product name or when several paths belong together.

If a path does not match any saved or automatically detected area, it appears as Other.

When to add an override

Save a custom area when you need to:

  • Rename an automatically detected package.
  • Combine several applications or packages into one product area.
  • Group paths outside the automatic monorepo roots.
  • Combine centralized suite paths with their owning package or product area.

Configure project areas

Open Project Settings → Project areas.

  1. Review saved areas first.
  2. Search the detected suggestions.
  3. Select Configure to prefill an editable saved area from a suggestion.
  4. Change its label or add comma-separated path patterns.
  5. Save project areas.

The dashboard reclassifies current specs and stored historical changes after saving. Another sync is not required.

Matching and historical paths

Area patterns are repository-relative and case-insensitive. Add several patterns to one saved area when multiple packages, apps, or suite paths belong to the same product area.

  • * matches one path segment.
  • ** matches recursively.
  • ? matches one non-separator character.

Deleted files can still be classified from the repository path stored with their historical test change. This means an area-filtered timeline can retain deleted-file activity even when the current spec no longer exists.

Renaming and combining paths

Renaming changes the display label while the area's stable ID remains attached to its saved area.

Add multiple path patterns to one saved area when related packages, apps, or suite paths belong to the same product area.

apps/storefront/**
packages/catalog/**
packages/cart/**
tests/e2e/checkout/**

These paths can be saved as one Commerce area.

Cross-area commits

A commit may contain changes from several areas. The timeline keeps the original commit context while filtered totals count only changes matching the active area.

Commit headers show deterministic area pills and an overflow count when several areas were touched. Expanded changes show their own area label.

Framework filter interaction

Area and framework filters are combined. Selecting Vitest and Cart shows only Vitest specs and changes classified as Cart.

Some frameworks do not naturally follow package paths. A centralized Playwright suite can still produce useful areas when the path includes product context:

  • tests/e2e/checkout.spec.ts is detected as Checkout.
  • e2e/cart/add-to-basket.spec.ts is detected as Cart.
  • Generic paths can still appear as Other when package areas already exist.
  • Related package and E2E paths can be combined with a saved area.

Area options with no files for the selected framework are hidden.

Reset and troubleshoot

Select Reset to automatic, then save, to remove all saved areas.

If an area is missing or empty:

  1. Confirm there are at least two meaningful areas.
  2. Check saved patterns.
  3. Inspect the current framework filter.
  4. Verify paths are relative to the repository root.
  5. Look for unmatched files under Other.

SyncConfig fragment

{
  "projectAreaMappings": [
    {
      "id": "commerce",
      "label": "Commerce",
      "patterns": [
        "apps/storefront/**",
        "packages/catalog/**",
        "packages/cart/**"
      ]
    },
    {
      "id": "e2e",
      "label": "E2E",
      "patterns": ["e2e/**"]
    }
  ]
}

IDs are stable internal identifiers. Labels must be unique and every saved area needs at least one path pattern.

Related reading

See it in Test Chronicle

Inspect a populated project or start tracking your own repository history.

Create a free account