From 92c8c22ed0fd45bc55de2db96e81a3f77417e7d9 Mon Sep 17 00:00:00 2001 From: Erik Zigo Date: Wed, 22 Apr 2026 19:14:00 +0200 Subject: [PATCH 1/4] test: add create-result datadir fixture (failing) Co-Authored-By: Claude Opus 4.7 (1M context) --- tests/functional/create-result/expected-code | 1 + .../create-result/expected/data/out/files/.gitkeep | 0 .../create-result/expected/data/out/result.json | 1 + .../create-result/expected/data/out/tables/.gitkeep | 0 tests/functional/create-result/source/data/config.json | 10 ++++++++++ 5 files changed, 12 insertions(+) create mode 100644 tests/functional/create-result/expected-code create mode 100644 tests/functional/create-result/expected/data/out/files/.gitkeep create mode 100644 tests/functional/create-result/expected/data/out/result.json create mode 100644 tests/functional/create-result/expected/data/out/tables/.gitkeep create mode 100644 tests/functional/create-result/source/data/config.json diff --git a/tests/functional/create-result/expected-code b/tests/functional/create-result/expected-code new file mode 100644 index 0000000..573541a --- /dev/null +++ b/tests/functional/create-result/expected-code @@ -0,0 +1 @@ +0 diff --git a/tests/functional/create-result/expected/data/out/files/.gitkeep b/tests/functional/create-result/expected/data/out/files/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/functional/create-result/expected/data/out/result.json b/tests/functional/create-result/expected/data/out/result.json new file mode 100644 index 0000000..c21d7a3 --- /dev/null +++ b/tests/functional/create-result/expected/data/out/result.json @@ -0,0 +1 @@ +{"variables":{"foo":"bar"}} \ No newline at end of file diff --git a/tests/functional/create-result/expected/data/out/tables/.gitkeep b/tests/functional/create-result/expected/data/out/tables/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/functional/create-result/source/data/config.json b/tests/functional/create-result/source/data/config.json new file mode 100644 index 0000000..c1abf2d --- /dev/null +++ b/tests/functional/create-result/source/data/config.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "operation": "create-result", + "result": { + "variables": { + "foo": "bar" + } + } + } +} From 6e192ca7ccb027ca19e567a285a8c065895fd9aa Mon Sep 17 00:00:00 2001 From: Erik Zigo Date: Wed, 22 Apr 2026 19:14:46 +0200 Subject: [PATCH 2/4] feat: whitelist create-result operation and declare result parameter Co-Authored-By: Claude Opus 4.7 (1M context) --- src/ConfigDefinition.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ConfigDefinition.php b/src/ConfigDefinition.php index 9937582..4971776 100644 --- a/src/ConfigDefinition.php +++ b/src/ConfigDefinition.php @@ -14,6 +14,7 @@ protected function getParametersDefinition(): ArrayNodeDefinition { $operations = [ 'application-error', + 'create-result', 'create-state', 'child-jobs', 'dump-config', @@ -38,6 +39,7 @@ protected function getParametersDefinition(): ArrayNodeDefinition ->end() ->scalarNode('timeout')->end() ->variableNode('arbitrary')->end() + ->variableNode('result')->end() ->scalarNode('#token')->end() ->scalarNode('queueApiUrl')->end() ->scalarNode('childJobsCount')->end() From e1edb96daeba67bfecdb0439ad25b47819c631e8 Mon Sep 17 00:00:00 2001 From: Erik Zigo Date: Wed, 22 Apr 2026 19:15:06 +0200 Subject: [PATCH 3/4] feat: add Config::getResult() accessor Co-Authored-By: Claude Opus 4.7 (1M context) --- src/Config.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Config.php b/src/Config.php index c83bbdf..581510d 100644 --- a/src/Config.php +++ b/src/Config.php @@ -48,4 +48,9 @@ public function getLogs(): array // @phpstan-ignore-next-line because getArrayValue returns generic array return $this->getArrayValue(['parameters', 'logs']); } + + public function getResult(): mixed + { + return $this->getValue(['parameters', 'result']); + } } From e1e516df0384dc711f9cb273f26329c8a0d83eca Mon Sep 17 00:00:00 2001 From: Erik Zigo Date: Wed, 22 Apr 2026 19:15:38 +0200 Subject: [PATCH 4/4] feat: implement create-result operation Co-Authored-By: Claude Opus 4.7 (1M context) --- src/Component.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Component.php b/src/Component.php index 72fcf63..383dde1 100644 --- a/src/Component.php +++ b/src/Component.php @@ -82,6 +82,12 @@ protected function run(): void case 'create-state': $this->writeOutputStateToFile($config->getArrayValue(['parameters', 'arbitrary'])); break; + case 'create-result': + file_put_contents( + $this->getDataDir() . '/out/result.json', + (string) json_encode($config->getResult()), + ); + break; case 'whoami': $process = new Process(['whoami']); $process->mustRun();