'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:----TtaIVMLZ9qsrmvQu3K72iU3GaFK7sgZyHxKhAaMClTIcHTPhIJtCZjhxeLbC/dx3RyFBhIRULGsSgzObOO2FKTGaKUIy1yO/HoM2bvLlY4pIU7aIaPoHkNNaLj/OPiVNbUyPcBsTLZ7pGJGbLpGEPcqpo6bKIa8VHAE1GmJIJe1iKd7W24S8cfB4a8zfoPuUs35+dLo3h8sSuzDq4UHVJ/e5rE7T1LwM/wb7mxnAddYvdTTk5zqIqq7QJqSR21BZCm7vNR3xIlMh/Pq3u6oRDbIa6qWB7HPb+t6++gSXWGnDmrUKJ2LgZH07weJyZ6VaUjrVWGNJBKZL5YsalB5fIiVLAfR5d5ODvb6ZPnNYMWt8a6JWJuTqJa8/aJjT289w/GLEm1tDBRYAD4T7OAyIIeiivOvAlXcx8oUOm30nXwdX/l7a/kFUrCsuJgqGYL7Q1rexd5wHy3CIPvnXAZaRZTMW3X1gN9GbXOKUJlXRHDSsHMoJcmcTVj+RWFMkJDV3bHRzJ9OYpQkhWZghKbe/Ns/sZPwA75n3k2WNDTBIE++ZYXYEJdqWzU+NcFotjaTXQTj5NOlePIEPBDbjZ5ya3XTmlPIXZs09Whzs4iDI123hQRWcuqLbLEdRC8iXxeqp+9X6wsTS8nvEzOR/vjKChxH9oLztXmKedXiWsPwhppI=----ATTACHMENT:----Mzk2MDAxNzMyMzc1ODAxMSA4ODE1ODE4NjcxMDMyNDEyIDMzMjA0NjI5OTIzNjkyNDM=