Skip to content

Commit 158a1d2

Browse files
committed
fix: register handlers behind trait gate
1 parent c8babf2 commit 158a1d2

2 files changed

Lines changed: 3 additions & 1 deletion

File tree

data-machine-code.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function datamachine_code_register_datamachine_integrations(): void {
8484
// Project active workspace identity into Data Machine's engine_data snapshot.
8585
\DataMachineCode\Runtime\ActiveWorkspaceProjector::register();
8686

87-
if ( class_exists('DataMachine\Core\Steps\HandlerRegistrationTrait') ) {
87+
if ( trait_exists('DataMachine\Core\Steps\HandlerRegistrationTrait') ) {
8888
new \DataMachineCode\Handlers\GitHub\GitHub();
8989
new \DataMachineCode\Handlers\GitHub\GitHubIssuePublish();
9090
new \DataMachineCode\Handlers\GitHub\GitHubPullRequestPublish();

tests/smoke-github-issue-publish-handler.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
$assert(false !== strpos($handler, "'items' => array( 'type' => 'string' )"), 'array parameters include item schemas');
3434
$assert(false !== strpos($handler, 'GitHubAbilities::createIssue'), 'handler delegates issue creation to GitHubAbilities');
3535
$assert(false !== strpos($settings, "'labels'") && false !== strpos($settings, "'assignees'"), 'settings expose labels and assignees defaults');
36+
$assert(false !== strpos($plugin, "trait_exists('DataMachine\\Core\\Steps\\HandlerRegistrationTrait')"), 'plugin detects Data Machine handler registration trait with trait_exists');
37+
$assert(false === strpos($plugin, "class_exists('DataMachine\\Core\\Steps\\HandlerRegistrationTrait')"), 'plugin does not gate trait detection with class_exists');
3638
$assert(false !== strpos($plugin, 'new \\DataMachineCode\\Handlers\\GitHub\\GitHubIssuePublish();'), 'plugin bootstraps GitHub issue publish handler');
3739
$assert(false !== strpos($plugin, "did_action('plugins_loaded')") && false !== strpos($plugin, 'datamachine_code_bootstrap();'), 'plugin bootstraps immediately when loaded after plugins_loaded');
3840
$assert(false !== strpos($plugin, "'activated_plugin'") && false !== strpos($plugin, 'datamachine_code_bootstrap();'), 'plugin retries bootstrap after late activation completes');

0 commit comments

Comments
 (0)