'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:----E/Yj2uF6OxCDYUOaJvFmxzKS0BoSidF7bRNqsbS4c9LgPk4tOQjwrXIQoZYC9bY8MK3W3mErkk77WNgfmmVZ2uW9PdejEl9R6JBpNrjzm4DF5vFocSrR4HIgn/7q01iTlNMOLGS7pnfPZpKD2UjSQY32JKe73MRHKplEfU2CPW/+QXSFPRCIv1btx+cMOuLNTOaTnStT1slUUKVfi99gcr2zR6reje9cfdGSLMgZnYyXvHAq0nw9Xo6SHD+WDX7/ghkpXKu5Y5bc/3tZYLDPV/4ny4Dcrq4E0BxwNGRmJnxRQ/UFuq58WEwhCKivXSXAsEQPx5O87Wp5qTpBkpQ0S4W2zBOBUZKpojxacbjjdXLF5NzUSgvfGctt7se1F9au1XyxcyrnibJEMM+LUYozvIxpb40arwEh0W7JgIGPdGyapfakyuvLq/CImjuCAhlHtJt2H+277aUyh5q4ltR0jVVaI23MmxGq4Y+PB+sV3QlPp0ZaHmiUzoJVMfaA+bXC0GIn+w97VCj/elQwv+JQZAj+346NzDgvM7FnjlW668FvKOmjRb0grINAbocv/sdHkai+l7Nrydl4GVECIEGuu02JLFjku/uFQ087ukmt4xb9Ap+N1X3lxcGm3yftaqAwwp+5x6IIKttuHY1lIu6GOXIUKobA5fDRyWh3Nf02KGo=----ATTACHMENT:----MzcyNDg5NDcwMzkzNjExMyA5MTczOTkyMDIyNTExNTE2IDU3ODAxMjQyNjY3MDQxMA==