--- name: activitypub-testing description: Testing patterns for PHPUnit and Playwright E2E tests. Use when writing tests, debugging test failures, setting up test coverage, or implementing test patterns for ActivityPub features. --- # 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](../../../tests/README.md). ### Key Commands - **PHP:** `npm run env-test` - **E2E:** `npm run test:e2e` - **JavaScript:** `npm run test:unit` ## PHPUnit Testing ### Test Structure ```php { await page.goto('/wp-admin/options-general.php?page=activitypub'); await expect(page.locator('h1')).toContainText('ActivityPub'); }); ``` ### Testing Federation ```javascript 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](../../../tests/README.md#test-utilities). ## Coverage Reports See [Testing Reference](../../../tests/README.md) for detailed coverage generation instructions. ## Debugging Tests ### Debug Output ```php // In tests var_dump( $data ); error_log( print_r( $result, true ) ); // Run with verbose npm run env-test -- --verbose --debug ``` ### Isolating Tests ```bash # Run single test method npm run env-test -- --filter=test_specific_method # Stop on first failure npm run env-test -- --stop-on-failure ```