'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:----Gh+DLUKBrHkXFuN5FwZ/1rowIj0t4jK1LAxpRfIxHoIZjeyNKWr1Og/k8hJ3KkNhrbBjhKoG+2WPMLvZNQUM5uVz7L/RW2rAWAW8hvt4MnXZ3v0kWt7+nMOZh/NVl8mlU2kCBFUrTBKBfEktXlz7IzXdbeQYRgsXWiIYfe/XvDJLezGwk3T0EoR9tyr6P6CMmvCCc6uyABuU5ldS0RUpayMfVPxh7eOOzbA4wq4+W0o+50scKytCpT+F9rMkIhiFkTxqZDPTxix2T4bLk6ONlPFCXD1BD6Oju8XbyNX5lsjzOOWsTTnCTQ9C9uS5lVb0itLVtrznlNmtvqO+E40VYAdp50dUNkAzf3V3Qh6XFAJzYuvCelKOXtS53iNLny1EzZVwvKr/4unbUs4OTZPQqR/7h/DRkbBc36mf20+ox3Ob76nshVnMJEPEfbktC3//wRQ8OrKnCuQSnvRKXEZd0y96TjmIDdOp6iKKWhxP6k5n0w/Hk4MmzOtdPko5jIthH1G1BFV4vgSV4xGOpdMNnXeYii4/0J+ZEMpCJYNMvX56rGWBA6GEXNTj0bLhrwVTyXrjFoK3Oo49ZUxsPuIP9/T0ls4/Hydrd/xw1InvYpcx7kJptI+ioDV0nk9Zi7a4VYXE5EDiJXoHV5ayVkNZ1P6Uz18mP3N+D8Cdd5PLQM4=----ATTACHMENT:----NjIzNzQ3NTIxODEyNzM2MiA1MDI3OTA3Mjk4OTk3NDgwIDI3MDk4NzgwMzcxNDM2MDg=