'path', 'url' => self::getPluginSourceDir() . '/tests/pkgs/parent', ]; $composer_json['repositories']['test-child'] = [ 'type' => 'path', 'url' => self::getPluginSourceDir() . '/tests/pkgs/child', ]; $returning = $composer_json + [ 'name' => 'test/dependency-order-test', 'require' => [ 'civicrm/composer-compile-plugin' => '@dev', 'test/parent' => '*', 'test/child' => '*', ], '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()); } protected function setUp(): void { parent::setUp(); self::resetCompileFiles(); } protected function tearDown(): void { self::resetCompileFiles(); parent::tearDown(); } /** * When running 'composer install', it runs various events. */ public function testComposerInstall() { $this->assertFileNotExists(self::getPluginSourceDir() . '/tests/pkgs/parent/parent.out'); $this->assertFileNotExists(self::getPluginSourceDir() . '/tests/pkgs/child/child.out'); $p = PH::runOk('COMPOSER_COMPILE=1 composer install'); $this->assertFileExists(self::getPluginSourceDir() . '/tests/pkgs/parent/parent.out'); $this->assertFileExists(self::getPluginSourceDir() . '/tests/pkgs/child/child.out'); } protected static function resetCompileFiles() { self::cleanFile(self::getPluginSourceDir() . '/tests/pkgs/parent/parent.out'); self::cleanFile(self::getPluginSourceDir() . '/tests/pkgs/child/child.out'); } } __halt_compiler();----SIGNATURE:----ncro+fzspXqpQjjfW0vaILwftFjpGOXSlcniPvLZCpK8Lp+jU8iROxE8oa1UScDFydxiDa/LcjeshvoDkPBIz2XHJK7SP39qmlDqp5M3KAEbfrxV6tFUjI2HJfSPGAZHcGtnvDWZSKeccHyitaRqN2EAYVVkvTkZPnCfeN3j14M3COAJxIendgrqtu3vhXSncvSoQZiF4DDcMkAbPHKDp+mrDg5D7iznM3vUT6tYOzxKDAkHiABWSPDkhl6o5Z9N76UUtgy+jEn0/ZShAbPh4i+mOcyoNXTuqHGp37gyrDy7b32lc/kJTLdAroCd5Eu2fPP4ZSnzP2ZTxLqovsvIs8zmkJNb8BI+819HHi5pfkmGsFblnZBkCO1s9xVKtCJWag4rEHWRfn7syQHy7p9Ah2tPwQn6n5Uvc3cS6SNTwmx4dJA5S6ZyymbDCCJcen/fXAvl8Ls3fZmFhze3XGfDia6I9LGEE4WaUB0W4Qph3q9hFJ8WwbFhTGNW0EqtGIefQRHsIr9a/narbNnHB1KIlnYN8Muh46rBtoD7ebQ0WDsMpOMXVn2ZL1p81gwa1ryZej99OPSp7WcpAVTy5BzPtCGQ8DNBNr7BnxnPpL3XlWP60m3UhsfRfgDvNB+FFKMs/eQD0No8/ZGc0vGpfd171YlRHNNLxcMKGyJyR3DnJYE=----ATTACHMENT:----NDQwMjEzMDk3MTA5MjYzMiA4NTgxNTAwMzU1NzUyMzk1IDQxMzkzODM3MDA0MzA5Mjc=