test

Patrones de prueba para tests de PHPUnit y Playwright E2E. Úsalo al escribir pruebas, depurar fallos de pruebas, configurar cobertura de pruebas o implementar patrones de prueba…

npx skills add https://github.com/automattic/wordpress-activitypub --skill test

ActivityPub Testing

This skill provides guidance on writing and running tests for the WordPress ActivityPub plugin.

Quick Reference

For complete testing commands and environment setup, see Testing Reference.

Key Commands

  • PHP: npm run env-test
  • E2E: npm run test:e2e
  • JavaScript: npm run test:unit

PHPUnit Testing

Test Structure

<?php
namespace Activitypub\Tests;

use WP_UnitTestCase;

class Test_Feature extends WP_UnitTestCase {
    public function set_up(): void {
        parent::set_up();
        // Setup
    }

    public function tear_down(): void {
        // Cleanup
        parent::tear_down();
    }

    public function test_functionality() {
        // Test implementation
    }
}

Common Test Patterns

For transformer and handler testing patterns, see Testing Reference - Writing Effective Tests.

For mocking HTTP requests and other utilities, see Testing Reference - Test Utilities.

Test Groups

Use @group annotations:

/**
 * @group activitypub
 * @group federation
 */
public function test_federation_feature() {
    // Test code
}

E2E Testing with Playwright

Basic E2E Test

const { test, expect } = require('@playwright/test');

test('ActivityPub settings page loads', async ({ page }) => {
    await page.goto('/wp-admin/options-general.php?page=activitypub');
    await expect(page.locator('h1')).toContainText('ActivityPub');
});

Testing Federation

test('WebFinger discovery works', async ({ page }) => {
    const response = await page.request.get('/.well-known/webfinger', {
        params: {
            resource: 'acct:admin@localhost:8888'
        }
    });

    expect(response.ok()).toBeTruthy();
    const json = await response.json();
    expect(json.subject).toBe('acct:admin@localhost:8888');
});

Test Data Factories

For creating test data (users, posts, comments), see Testing Reference - Test Utilities.

Coverage Reports

See Testing Reference for detailed coverage generation instructions.

Debugging Tests

Debug Output

// In tests
var_dump( $data );
error_log( print_r( $result, true ) );

// Run with verbose
npm run env-test -- --verbose --debug

Isolating Tests

# Run single test method
npm run env-test -- --filter=test_specific_method

# Stop on first failure
npm run env-test -- --stop-on-failure

Más skills de automattic

wp-phpstan
automattic
Úsalo al configurar, ejecutar o corregir el análisis estático de PHPStan en proyectos de WordPress (plugins/temas/sitios): configuración de phpstan.neon, líneas base,…
official
wp-playground
automattic
Usar para flujos de trabajo de WordPress Playground: instancias rápidas y desechables de WP en el navegador o localmente mediante @wp-playground/cli (server, run-blueprint, build-snapshot),…
official
wp-plugin-development
automattic
Úsese al desarrollar plugins de WordPress: arquitectura y hooks, activación/desactivación/desinstalación, interfaz de administración y API de Settings, almacenamiento de datos, cron/tareas, seguridad…
official
wp-project-triage
automattic
Úselo cuando necesite una inspección determinista de un repositorio de WordPress (plugin/tema/tema de bloque/WP core/Gutenberg/sitio completo) incluyendo herramientas/pruebas/versión…
official
wp-rest-api
automattic
Úsalo al construir, extender o depurar endpoints/rutas de la API REST de WordPress: register_rest_route, clases WP_REST_Controller/controller, esquema/argumentos…
official
wp-wpcli-and-ops
automattic
Úsalo al trabajar con WP-CLI (wp) para operaciones de WordPress: búsqueda y reemplazo seguros, exportación/importación de base de datos, gestión de plugins/temas/usuarios/contenido, cron, vaciado de caché,…
official
wpds
automattic
Úsalo al construir interfaces de usuario que aprovechen el Sistema de Diseño de WordPress (WPDS) y sus componentes, tokens, patrones, etc.
official
woocommerce-finalize
automattic
Auditoría de salud de código y trazabilidad previa al lanzamiento para plugins de WooCommerce. Se ejecuta después de la revisión de código — se enfoca en código muerto, duplicación, complejidad estructural y…
official