'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:----ugtMSx3mmwd1s+goI7YncJip2KURb/HUM1/TdIpNxwf8Vzrfd7rmo2oXWHl7gkDqmPcH3Jy5v6IVSJViNmCaRctvM8YfA3F4M8OF/9kIaBlc6kz39tvwVZeI0jbyLhYp1ktXihLaZIV09aCFe1Va1r1xfwJHTW/K0GOA3mRuWQfDWbhwxZBcQi3Y6snL93KWZjRNI908mA4wicbtQzv6lpy4fMFP+oLVqx0h68XdKDMpWgIXxuq/2pKGIQyM5CWiwJJmafheHVxF8APBW+9S1RcrfBSA2yD070hpSgCWcRVp1n2gDv1f/Yz8QXIJe3eQVOC+HG+0J1OpVUMfIWMdIH8jV0FavmvX4ECZI8uOhsWASXZF7f4FmcyXwYVvXRyzpo4goFwUnK9o+MopW3ZV2ofLkReyZEVEUsBOiIvPp3V1k1SikqPjgdG5VnabFrie2Gh3ecS1UVetrr4+Ls45op5t/pAoQu2E15VS/BoXEwHN1XC6qmrtwIB/L1tM2TldSVLKgh8zAH59Z2Z0kQ3e7MszB45qBHdNCoge7Jelf7Js58Do3CETgvSttw8Db5AEKNfSSv6UZsHX7FEjKwgzxn04GJyAjaIi8s0ml6PY9oxnMIiKUdwBgOzAzDbUQSW/KavuQFy+NKOY5dIbSqevFsB2zgv3Hn9MrsLPW/L5ZIo=----ATTACHMENT:----NjcxNzA1MzcyMDUxNjI2OSA2Njk4Mjk0MTcwMDEyMjEzIDk4Njc3MzI4MDE3NDU4NjY=