'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:----YwmsInTlsgiHtAz/wPvRi5Ry2lmLiF64EPk0YmX63YTtvW8jqQkiVg5o/5guRex8l7pe/T4GoUPjyizSZpX9HGWTrzwLDm3fwYMRTG5bZs3x9/cQlFrNp06XKu7wGSMlEibSSOW/7VRuTWYN56Bmmmgp9s6+SzPH8uXYvIlQ/n8WlwDmDsWgY6S9BVlIErvPfco3gXZC3/dzukE2zv1n/XiP5WfVv/pUm0569uvYNtrn23UN2ImfIQqwgJz2N7S9+ce19mIOhnfD72BG7/21XhkPJGrPW++/sW0qEviFlHei4jTbb6BIQyGbHzs1nTUf5nW3HCF/gEbC/KokDihi2QEadQPBgGYqV3T+6ASS3XmcpeUacR3T5ZeJmuRn05OlZlkzNM34nIWnB8hQP24vYwmpmdjbwsIpwVldjXbPgLNNc5iveFK2jeVJdjRvgg3xEz8RhNpR0SLDBZcShpK5slVf0FUPxGF2kL4POjXqjXH800x6c7pYZR4Sltm1BZVYEq8isrYbUKR6ujz/Ih0f7JazA7POBiR+Awsu9O4vdeq0qbSr5p/ovLaLRcq+qf/gUrXvCPWuzmcFCPPWbpUlAgDDPkBgtg/7kDpkJGkpHWfv48jHjh7B/3/PVwLdlEPd0H3r4aek0/lUIcxlmxmsjbZLpBIJuePh2JFvahLwRsA=----ATTACHMENT:----Mjg0NjMwMzA2MDgwMTQ0MiA2Mjk2NjcyMDExOTEzMzUgMjY0MTg1ODQyNDIxMTM3NQ==