Skip to content

Commit 8055f1f

Browse files
committed
✨ feat(core): add region spec with feature and integration tests.
1 parent 8c2d126 commit 8055f1f

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

specs/core/region.yaml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: region
2+
group: core
3+
description: The Region class is the runtime engine for state machines, managing state transitions, event dispatching, and lifecycle callbacks through a chain-based architecture
4+
5+
features:
6+
- name: state-management
7+
description: Core state tracking and querying functionality
8+
specs:
9+
- acceptanceCriteria: A region tracks its current state
10+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/CurrentStateTrackingTest.php
11+
12+
- acceptanceCriteria: A region can check if it is in a specific state
13+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/StateCheckTest.php
14+
15+
- acceptanceCriteria: A region can detect when it has reached the final state
16+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/FinalStateDetectionTest.php
17+
18+
- name: event-triggering
19+
description: Event triggering with immediate and queued dispatch modes
20+
specs:
21+
- acceptanceCriteria: A region can trigger events with immediate dispatch
22+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/ImmediateEventDispatchTest.php
23+
24+
- acceptanceCriteria: A region can enqueue events for later dispatch
25+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/EnqueueEventsTest.php
26+
27+
- acceptanceCriteria: Multiple events can be triggered and queued
28+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/MultipleEventQueuingTest.php
29+
30+
- name: event-dispatching
31+
description: Processing queued events through action and transition chains
32+
specs:
33+
- acceptanceCriteria: Dispatching processes all queued events in order
34+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/ProcessQueuedEventsTest.php
35+
36+
- acceptanceCriteria: Dispatching clears the event queue to prevent infinite loops
37+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/EventQueueClearingTest.php
38+
39+
- acceptanceCriteria: Events triggered during dispatch are queued for next cycle
40+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/NestedEventDispatchTest.php
41+
42+
- name: action-chain-integration
43+
description: Integration with the action chain for state-based event handling
44+
specs:
45+
- acceptanceCriteria: Action chain is invoked for each dispatched event
46+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/ActionChainInvocationTest.php
47+
48+
- acceptanceCriteria: Action chain receives region and trigger payload
49+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/ActionChainContextTest.php
50+
51+
- acceptanceCriteria: Action chain can return same or different state
52+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/ActionChainStateReturnTest.php
53+
54+
- name: transition-chain-integration
55+
description: Integration with the transition chain for state changes
56+
specs:
57+
- acceptanceCriteria: Transition chain is invoked when state changes
58+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/TransitionChainInvocationTest.php
59+
60+
- acceptanceCriteria: Transition chain receives previous and current state
61+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/TransitionChainContextTest.php
62+
63+
- acceptanceCriteria: Transition chain is not invoked when state remains unchanged
64+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/NoTransitionOnSameStateTest.php
65+
66+
- name: event-lifecycle
67+
description: State transition lifecycle events and callbacks
68+
specs:
69+
- acceptanceCriteria: onEnterParent triggers state entry callbacks
70+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/OnEnterParentCallbackTest.php
71+
72+
- acceptanceCriteria: Entry callbacks can trigger additional events
73+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/EntryCascadingEventsTest.php
74+
75+
- acceptanceCriteria: Cascading events are processed immediately after entry
76+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/ImmediateCascadeProcessingTest.php
77+
78+
- name: path-generation
79+
description: Hierarchical path representation for state machines
80+
specs:
81+
- acceptanceCriteria: Region provides path through path chain
82+
test: vendor/bin/phpunit tests/PHPUnit/Unit/Core/Region/PathGenerationTest.php
83+
84+
- name: integration
85+
description: Full integration scenarios combining multiple features
86+
specs:
87+
- acceptanceCriteria: Basic state transition with guards and callbacks executes correctly
88+
test: vendor/bin/phpunit tests/PHPUnit/Integration/Core/Region/BasicTransitionIntegrationTest.php
89+
90+
- acceptanceCriteria: Multiple transitions in sequence execute in order
91+
test: vendor/bin/phpunit tests/PHPUnit/Integration/Core/Region/SequentialTransitionsTest.php
92+
93+
- acceptanceCriteria: Event queueing and batch processing works correctly
94+
test: vendor/bin/phpunit tests/PHPUnit/Integration/Core/Region/QueuedEventBatchTest.php

0 commit comments

Comments
 (0)