Skip to content

docs: document the Pest testing workflow - #810

Open
somethingwithproof wants to merge 3 commits into
Cacti:developfrom
somethingwithproof:agent/document-pest-workflow
Open

docs: document the Pest testing workflow#810
somethingwithproof wants to merge 3 commits into
Cacti:developfrom
somethingwithproof:agent/document-pest-workflow

Conversation

@somethingwithproof

Copy link
Copy Markdown
Member

What

  • add a dedicated Pest testing and contribution guide
  • link the guide from README.md
  • rename the misleading php-unit-tests workflow file to pest-tests.yml
  • keep integration tests on the pinned Cacti release and bound apt refresh retries

Why

Thold uses Pest through Cacti's Composer toolchain and must not carry a plugin-local Composer manifest or vendor tree. The repository should make that policy and the supported local commands explicit. The integration workflow also needs bounded package-network operations so transient runner failures do not hang pull requests indefinitely.

Impact

Documentation and CI workflow maintenance only. No plugin runtime behavior changes. The existing phpunit.xml remains because Pest reads it as compatibility configuration.

Checks

  • actionlint (only the two pre-existing shellcheck findings in unchanged scripts)
  • markdownlint README.md docs/TESTING.md
  • git diff --check
  • verified no composer.json, composer.lock, vendor directory, or generated coverage output in the diff

@somethingwithproof
somethingwithproof marked this pull request as ready for review August 18, 2026 09:13
Copilot AI lite review requested due to automatic review settings August 18, 2026 09:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR documents Thold’s Pest-based unit testing workflow (using Cacti’s Composer toolchain) and hardens CI against transient network/package failures by bounding retry/timeout behavior in GitHub Actions workflows.

Changes:

  • Added a dedicated testing/contribution guide describing Pest usage and the “no plugin-local Composer/vendor” policy.
  • Linked the testing guide from the main README for developer discoverability.
  • Updated CI workflows to run only against the pinned Cacti release and to bound apt-get update, Docker builds, and composer install retries.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
README.md Adds a “Development and testing” section linking to the new testing guide and clarifying the shared Cacti Composer toolchain policy.
docs/TESTING.md Introduces the Pest testing and contribution workflow documentation, including local commands and PR checklist.
.github/workflows/plugin-ci-workflow.yml Limits integration tests to the pinned Cacti release and adds bounded retries/timeouts for package refresh and composer installs.
.github/workflows/pest-tests.yml Adds bounded retry logic to building the pinned Cacti Docker test images for Pest runs.
Suppressed comments (1)

.github/workflows/pest-tests.yml:76

  • This line ends with && \ and appears to include trailing whitespace after the backslash. In shell, a backslash must be the final character on the line to act as a line-continuation, so this is error-prone and can behave unexpectedly. You can drop the backslash entirely because a newline after && is valid shell syntax.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/TESTING.md
To run one test file while developing:

```console
composer test -- --configuration=plugins/thold/phpunit.xml plugins/thold/tests/Unit/TholdRpnCdefTest.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants