Skip to content

Test a plugin

Start with the smallest boundary, then verify that the selected distribution can compose. The commands below use the repository's current toolchains.

Concern Check
Python unit/API behavior cd core/backend && uv run pytest <plugin tests> -q
Plugin API contracts cd core/backend && uv run pytest ../../plugin-api/python/atlas_plugin_api/tests -q
Frontend behavior cd core/frontend && npm test -- --run
Frontend type/build boundary cd core/frontend && npm run build
Composition uv run --project composer atlas-compose validate distributions/default/manifest.yaml distributions/default/lock.yaml
Migration safety cd core/backend && uv run django-safe-migrations && uv run python manage.py check_migration_boundaries

What to cover

  • Unit-test schemas, pure contribution builders, registries, and domain rules.
  • Exercise protected API behavior with allowed and denied principals.
  • Test frontend rendering and interaction without treating a hidden control as authorization proof.
  • Test composition failures: duplicate ids, missing dependencies, incompatible versions, configuration errors, and route collisions.
  • Test an upgrade path for models and migrations, including a safe failure or recovery boundary where relevant.
  • Test that a failing plugin request is isolated and an unavailable capability is handled rather than imported around.

Run the focused test path recorded next to the plugin before the broad suite. For a new source-backed tutorial example, run the commands in its page's validation section as well. See debug plugins when a check fails.