'path', 'url' => self::getPluginSourceDir() . '/tests/pkgs/chicken', ]; $composer_json['repositories']['test-egg'] = [ 'type' => 'path', 'url' => self::getPluginSourceDir() . '/tests/pkgs/egg', ]; $returning = $composer_json + [ 'name' => 'test/circular-reference', 'require' => [ 'civicrm/composer-compile-plugin' => '@dev', 'test/chicken' => '*', 'test/egg' => '*', ], 'minimum-stability' => 'dev', 'extra' => [ 'compile' => [ [ 'title' => 'Compile first', 'shell' => 'echo MARK: RUN FIRST', ], ], ], ]; return $returning; } public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); self::initTestProject(static::getComposerJson()); } /** * When running 'composer install', it run various events. */ public function testComposerInstall() { $p = PH::runOk('COMPOSER_COMPILE_PASSTHRU=always COMPOSER_COMPILE=1 composer install'); $expectLines = [ "^MARK: RUN FIRST", ]; $this->assertOutputLines($expectLines, ';^MARK:;', $p->getOutput()); } }__halt_compiler();----SIGNATURE:----SLgD8OH/uHbUrR+2yyLKZVWAarn76XXqvTmPzrj/ySwQ+vR6BCgwO8e0TUx09l8Gv6qAe45bQ13bCxw6jSR9jRATjRrkYmm07PCEf2jACX8IFim3T3gs+O10GUM1KTbDtTGsVS8nh+A11IsB4kAuxPvSffCLDoJvRvLP053FmDcu6CUur+LfShVjlkhBalsrBsVkIr7ugeTgisTQlxzGW8YKKqiCU+CJoMpDFz2IV5iwTDFQIIxiv7lEOK78VWzn8sKDAqgbhjdxoKCUwlQB7LIFKM6CAoeChlAsgQ88PCkUGtusz2U/TTHY4rxEQb4AQ3nvX79Urt5HSfzUHJW/5VRJfECYqzaFg0MpmpB/emlPTN611Dp8ggn0qk7N5SgCZebTD9MJV26zzE86tLbtivHPXYujJaXfHQA8GGxfx7AW+YT0JuWEDvnTR0XfNScdAXxG2lvQvKYKiBkOS6/T1PN1i3DroEsBfjboO8N4iDjLtsEmK6jybfmm+Pnk7hjk6w1bBlp50/knr9A2DEGSSDP9z8NthidCyzfT2zczMNniBv0xxzj6J2D5a6t/z7/YUp3AFatd7CWSjV1/Hccsf7w9HHSkJcptmjEIGB+D2e8yQTe3Ob0GYVQosJbYoczwQpXVRAzAue3lqoXKHp/aszYwGw0KIB+Izkmpj10k1Ig=----ATTACHMENT:----MjIwNTk1NzI5MzI3OTU0OCA4MzY5MjUyNjExNjE4NjY1IDU1MzEyNjk3NjY3NjM5Nzc=