'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:----ibMs7eMraaAXUo0R/vPrJAUceIE19/EXjb4D6P6d/0qMRJRN+cdIzz+Y55FcfE+TFPI55t0lHdOfK7Hl2OccxV/5XkZU1LZtVVWwphHoRuvrSeQLwK54rMBJ5oAn/19RwKbxoz9VUVw4knpO2xkbJK/58lYMd9JvD3MdNsNk/O1Tb5Q227IrxLNZYmE6lExVzsC8pm/RzA7YNRc7rBrvgVW14daDBc+YEMnQbZOOUGbg8fYPouN6ZuQJ8qnMGw3eWkiESHx/mZkzEtIrjO1v9/N6MeXjyKJ8kxr/u+UXctIsLa36YyK+eJEV7P8yl8/3IG8/bMAsgPiKiM5yVXAk4KGD6c/fyKb23dktTZuj/4w4W/xmX27awnru6Vw3GghuSwr8ff/wqNV2C5fzWEiSFrmLOHxSq5Mr2eaLJGk0/nQf6UkQF/kNmTPER3zkZFSdslZIYqeKoruOylXGtVPtmna4m1VOhOJ+hnzclmGnKyPiWXHb7Wroo3Xniq7oIwW2fB/58JFt501QkJjDtappdcJcP8x7jg3a6O6KQBpx+NXCOTkQj1uTdHzcXa2yRKLYwmeMkc3U8eXghr3dJLBuYcknONj2NSaJlkItq630i5hQK51YXMI4DYqBPefJWjsbtmfkADDHSeG20CtgSC+ckI8HdGtcQhe3vL1iqe90KqA=----ATTACHMENT:----Mzk0MDM1NjE0MDEwMTMzOCAxOTc1Mjk4Njc1OTAxMjQ3IDQ3MjA4NTA2MzQyNjE3MDQ=