'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:----aYoekg4cQcPBDERr9wh/80mDd/Al8qPnGfj4166MYwLLNy0dLaHgMgGV3xCpR1kMd+/aRJH+GN7gk4oBM1IcfRmCdpjjJ1c3UG76NyCgBQ7JlWLrgbsLMc56J9iDl581R9eaCPg9wXpFRCXtBsCTDsiSuO4dmerBmRf1SM3CIGciUnPJSRjQaF2l41jVMdhJz+VRuzZu9HTzdCDyg8GTynmI/Tzq6gDao2MBMUgj7G5lUGe5wfH7qAHDDxkgbgb/F9Ajl2uoxT6szzOa9xksS30PHfHbv8uXEW+Z97WpziR2FBQz4hR6d16TfvtJyG0vzP+Xvxs/p44DfvVTZdc5zENmLqE1YkyjqxHOTeHR+sKgRMerXOE2a/F6Xk15Q+3+a4rkNKbXoYfQEUlsDJjo6yuDm3YHnax9dPavW9aONB0ZhDMtwdjfKtLIA6Dh2/wf63YrmJzoU822MpvJCn+RC7pxaRHuTYyRjW8U2nDHxcN607lR+jitIZ+jrCNqvisZ/0PTVlqSLfrsyqeGc72jSLQLMD/yPtAFVCpU+3fXsRWj+FFZHXANfgvb//pR7OmNH1T/n6gM22akr6ExR4wWkGbKlCjFvh7SZmd4EqutwjwM4SF2joVYTq1pQkc30AT4Izm24Sksfm3YQJgxAnFOcfhC2hDqtauXeFa4eRkyAyg=----ATTACHMENT:----NzA4OTM2NTU0MzY5MDEwMyA5Mzk0MzE0Mzk4NzQxMDc2IDc3MjcxNDY5NTI4NzQyOTg=