What problem does it solve? OrangeHRM has four distinct test layers (PHPUnit per-plugin testsuites, Jest frontend tests, Cypress E2E, and CI smoke tests) with specific base classes, YAML fixture conventions, and a dedicated test database lifecycle. This Skill removes the guesswork of choosing the right test base class, setting up the test DB, and following the codebase's integration-style testing conventions. ## Core Features & Use Cases - Test base class selection: Explains when to use TestCase, KernelTestCase, EntityTestCase, EndpointTestCase, or EndpointIntegrationTestCase based on what the code under test needs. - Test DB lifecycle: Documents the instance:create-test-db command that builds a migrated, fixture-seeded MySQL database dumped for fast per-test restore. - YAML fixture pattern: Covers per-plugin test/fixtures/<DaoName>.yml files loaded via TestDataService::populate() in setUp(), including the full-table-truncate semantics. - Use Case: You added a new DAO method and need a test. Follow the DAO test recipe: create a YAML fixture, extend TestCase, populate the fixture in setUp(), and run it with ./src/vendor/bin/phpunit --testsuite <Plugin>. ## Quick Start Ask the assistant to write a PHPUnit DAO test with a YAML fixture for your new OrangeHRM plugin DAO method.