'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:----GQ6XPdm1h14vxPOoZq5wDF1mz/34XiWBIpz723t4qXew8zigXrfUdNkXdsTj61Pe1R+y92dm5XboVRmf1RQEg3nzjDmyOGC4GTBRa1EEjpzNcs52pzJDc/rPd49kpaoDUjNJfRs1Psp5sb+KnkLtYI2JuiehhkxjxIYKyixZp8oIMZQPjIwxFq9bT+CqZbbXRfX+cgdZVSTvVEUGu4F7k9Y7qHYTNTw1M1Hn/tzkkb+qm2ZjL8d1S/FAAaNKTi1ttPVzkANzXXoeTmKsCqZ0LyYcmIy+75V6H+0kU/l53gubg4+IQbh+TrKYzFAK5L2tNzmyDkiqy32WpDK6Sd2AWgn0xkkV87rsAP+Dqlo7ei2iVakTiGc+ki/n9DTl7iFGELBO5CYFAZ/RFt62U8yoTTzRTNWFpjblix4vMJnHVWP+PsqOm+YNJKEGtydDfDWnpWv+yquRYyjEhF7DZnODemNfvjR97JsR+qbcaWKCg1e8gz0EUVmT7S7gq11IN6sFa9Jvu254iVeWvXbVExKONrT/F/yWInicB3hT5z0rASvbP/Jjk6KGKMpfS++ilFKfoazHC3K4bvINTfVAcO7QM8zm4/yna4zWXynzgS9azh2ma5Y7ZJFmO0moWGoysQNNWA0B4a04CePsBHvHMD6nstSLDeQ92Ch2JET5w9Pz9kU=----ATTACHMENT:----Mjg0ODUwOTE2Njg4NDI2MCA1OTcyMDc0OTY0Mzk0MTQ3IDM1MzUzNDgyNjM1NjY2MDE=