'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:----pQfYYrEsuwOIBS6mABf8y+OgI6TDH50orozt9LzZWd0U1V6CAV7YN83M43Vpa93Es2MtHO0mCZFGU+T24Hubdjtjl+OXwk0zGiJyRROIp3DjuHLolKN898zQTRYIomaeMNjMMQSlpL14NvIz+2sl2ZFlc8SQbJvUFngWHJoA0CtpkiXfqdVM5jgl/1ZJrZGzkonMJxcpZJfFDUDeIa2Kf9dAxo7jcP7YIktPYiHaXehqQHyZDA+D7M5OqdfSsC8kZaQ+rFI7b6qaDJG+fHO03fgFt/BiXVWrL/6LuZ4L3Dd5pEA9qIZkX/3RuUsI4O5gcOtKpjO7z8OAxqAVxYRXzLTkKtp9Bir0RGiK1z0YA3zgBOdn5UXO2Nr3bqaDklH63KAde9WLjlhc/wdmDyEvqGrCgdDqTIeQdJ5hjbLD+nSm6mnqG8dyrJSUnZjlQCdtavF92sROnD0Ib6ORx1ciU0Qv04HrQf3bipj0xWCymnno8HLg/FdGIYx80us0aJUvzywD1Dn97yhWX2h3uoLFKaWGOkgbcCYKU0FvaPnymx0Zn7fOvgKVAUlZLN82OkBTvv04WViwDWKFR8SA+0CJNzXLNukVNEG8vKPnYHrCi3rAWGmOMgfNC0wQ7TclhmQFVg/1ICX9lDzneG+G0lASn/bA6uRAoyCXCdHWDthUM4o=----ATTACHMENT:----MjEzMjk0NTIzMDQ3NTUxNCA1ODQ0ODY5Njg0MDkxMzYwIDcyNjYyMTk3ODIzOTY2OTk=