umbraco-testing

Umbraco Testing - Router

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "umbraco-testing" with this command: npx skills add umbraco/umbraco-cms-backoffice-skills/umbraco-umbraco-cms-backoffice-skills-umbraco-testing

Umbraco Testing - Router

Entry point for testing Umbraco backoffice extensions. Use this skill to determine which testing approach to use, then invoke the appropriate specialized skill.

Quick Reference

Level Skill Use When

1 umbraco-unit-testing

Testing contexts, elements, controllers in isolation

2 umbraco-msw-testing

Testing API error handling, loading states

3 umbraco-mocked-backoffice

Testing extension UI in full backoffice (no .NET)

4 umbraco-e2e-testing

Testing complete workflows against real Umbraco

Supporting Skills

Skill Purpose

umbraco-test-builders

JsonModels.Builders for test data

umbraco-playwright-testhelpers

Full API reference for testhelpers

umbraco-example-generator

Generate testable example extensions

Decision Guide

Choose Unit Testing (umbraco-unit-testing )

Best for fast, isolated testing:

  • Context logic and state management

  • Lit element rendering and shadow DOM

  • Observable subscriptions and state changes

  • Controllers and utility functions

Speed: Milliseconds | Backend: None | Browser: Playwright launcher

Choose MSW Testing (umbraco-msw-testing )

Best for testing API behavior without backend:

  • API error handling (404, 500, validation)

  • Loading spinners and skeleton states

  • Network retry behavior

  • Response edge cases and timeouts

Speed: Fast | Backend: None (mocked) | Browser: Playwright

Choose Mocked Backoffice (umbraco-mocked-backoffice )

Best for testing extensions in realistic UI:

  • Extension appears correctly in backoffice

  • Workspace views, actions, footer apps work

  • Extension registration and manifest loading

  • Visual integration without .NET setup

Speed: Fast | Backend: None (MSW) | Browser: Chromium

Choose E2E Testing (umbraco-e2e-testing )

Best for full acceptance testing:

  • Complete user workflows end-to-end

  • Data persistence and retrieval

  • Authentication and permissions

  • Real API responses and behaviors

Speed: Slower | Backend: Running Umbraco | Browser: Chromium

Workflow

  • Identify what to test - context logic, element rendering, API handling, or full workflow

  • Choose testing level - use the decision guide above

  • Invoke the skill - each testing skill is self-contained with setup, patterns, and examples

  • Generate test data - use umbraco-test-builders if needed

Complete Testing Pyramid

A well-tested extension uses multiple testing levels. Here's the complete pyramid:

                ┌─────────────┐
                │   E2E Tests │  ← Real backend, complete workflows
                │   (7 tests) │
                └─────────────┘
          ┌─────────────────────────┐
          │   Mocked Backoffice     │  ← No backend, realistic UI
          │   MSW: 6 | Mock Repo: 6 │
          └─────────────────────────┘
    ┌─────────────────────────────────────┐
    │           Unit Tests                │  ← Fast, isolated
    │           (13 tests)                │
    └─────────────────────────────────────┘

Test Count by Level

Level Tests Speed Backend Required

Unit 13 ~1s None

MSW Mocked 6 ~30s None (MSW)

Mock Repository 6 ~37s None

E2E 7 ~15s Real Umbraco

Total 32

Working Example: tree-example

The tree-example demonstrates all testing approaches in one project:

cd /path/to/tree-example/Client

Unit tests (fast, no server)

npm test # 13 tests, ~1s

MSW mocked tests (requires mocked backoffice)

npm run test:mocked:msw # 6 tests, ~30s

Mock repository tests (requires mocked backoffice)

npm run test:mocked:repo # 6 tests, ~37s

E2E tests (requires real Umbraco)

URL=https://localhost:44325
UMBRACO_USER_LOGIN=admin@example.com
UMBRACO_USER_PASSWORD=yourpassword
npm run test:e2e # 7 tests, ~15s

Location: umbraco-backoffice/examples/tree-example/Client/

Reference Examples

The Umbraco-CMS repository contains extensive test examples:

Type Location

Unit tests src/Umbraco.Web.UI.Client/examples/*/

MSW handlers src/Umbraco.Web.UI.Client/src/mocks/handlers/

E2E tests tests/Umbraco.Tests.AcceptanceTest/tests/

Extensions src/Umbraco.Web.UI.Client/examples/ (27 examples)

Complete pyramid umbraco-backoffice/examples/tree-example/Client/

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

umbraco-backoffice

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-dashboard

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-quickstart

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-extension-template

No summary provided by upstream source.

Repository SourceNeeds Review