Skip to content

time testing utilities#72

Merged
cappuc merged 5 commits intomainfrom
feat/time-testing
Dec 21, 2025
Merged

time testing utilities#72
cappuc merged 5 commits intomainfrom
feat/time-testing

Conversation

@cappuc
Copy link
Copy Markdown
Contributor

@cappuc cappuc commented Dec 21, 2025

No description provided.

@cappuc cappuc marked this pull request as ready for review December 21, 2025 16:57
Copilot AI review requested due to automatic review settings December 21, 2025 16:57
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 introduces time testing utilities for Temporal workflows, enabling developers to control and manipulate time during workflow tests. The main additions include a TemporalTestTime class for time control operations and a WithoutTimeSkipping trait to manage time-skipping behavior in test scenarios.

Key changes:

  • Added TemporalTestTime utility class with methods for locking/unlocking time skipping and advancing time in tests
  • Introduced WithoutTimeSkipping trait for fine-grained control over time-skipping behavior in individual tests
  • Updated documentation with comprehensive examples and clarifications about using fully qualified class names for testing traits

Reviewed changes

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

Show a summary per file
File Description
src/Testing/TemporalTestTime.php New utility class providing static methods to control time-skipping functionality in tests via TestService
src/Testing/WithoutTimeSkipping.php New trait that locks time-skipping during test setup and unlocks it during teardown
src/LaravelTemporalServiceProvider.php Registers TemporalTestTime as a singleton in the service container
tests/Integrations/Temporal/AsyncWorkflowTest.php Integration test demonstrating time-skipping functionality with a 3-second timer
tests/Fixtures/WorkflowDiscovery/Workflows/AsyncWorkflow.php Test fixture workflow that yields a 3-second timer
tests/Unit/Discovery/WorkflowDiscoveryTest.php Updated to include AsyncWorkflow in the list of discovered workflows
src/Testing/TemporalTestingWorker.php Removed unnecessary type cast in string contains check
src/Testing/LocalTemporalServer.php Removed unnecessary type cast in string contains check
rector.php Removed FunctionLikeToFirstClassCallableRector rule and its import
phpunit.xml.dist Changed TEMPORAL_TESTING_SERVER_TIME_SKIPPING default from false to true
README.md Enhanced documentation with fully qualified trait names and added comprehensive time-skipping examples

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@cappuc cappuc merged commit bc0d49c into main Dec 21, 2025
8 checks passed
@cappuc cappuc deleted the feat/time-testing branch December 21, 2025 17:07
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