'path', 'url' => self::getPluginSourceDir() . '/tests/pkgs/chicken', ]; $composer_json['repositories']['test-egg'] = [ 'type' => 'path', 'url' => self::getPluginSourceDir() . '/tests/pkgs/egg', ]; $returning = $composer_json + [ 'name' => 'test/circular-reference', 'require' => [ 'civicrm/composer-compile-plugin' => '@dev', 'test/chicken' => '*', 'test/egg' => '*', ], '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()); } /** * When running 'composer install', it run various events. */ public function testComposerInstall() { $p = PH::runOk('COMPOSER_COMPILE_PASSTHRU=always COMPOSER_COMPILE=1 composer install'); $expectLines = [ "^MARK: RUN FIRST", ]; $this->assertOutputLines($expectLines, ';^MARK:;', $p->getOutput()); } }__halt_compiler();----SIGNATURE:----avnFj/ryGKV6btS6I207Y3L9fFmXDNGBQR0XJdjB5vIGWBjtY0pmSo4xsmsuZOstkDDBcKk7UKznoqWaxyjuco3/3HVGvVuChibTnYRKArNKJQUqzkjlzH5bkpfOMLC0RIvdldpnr8aK6YP59cGRavnG1pZ3CJnDXaKsZQ0FuvCsGjTZxN9075VXERMyS4XTC3CgF2ry7cuWxcoqIgnZrOHdkpseqN2kO5HWFYK+iT0XKsRr0myvaUTyaG3DEwigz4zQ0AxD+KajVLtg6lDKeidLADI0llpevuK4OEAHCP+zvhPiXoN3DKh3UeXfH3/NambYsXEYK3r82eN0cMwtX00PJrofNt0VRWlcd6iYiskSW3zpl6/FNjTyErDa++J50mrpx6G6y/xKKLV3Lo79xWDJxkqtyBZFQj7BunzN6Ss+qLfwZWEz680PHnlgY+so61uq+LpW726NCX46L2AkM18HNwZcH+JCGKWaqcdB6I29ZrKLCjun19zdlLe4MVPKTkOu+l1A45HN9hEhE6EOHkVxLB6wk6//X2tN6zxEiT07NX2YZgbcXzQy3RAM/abMQfP/lKJU3sOU5VTXTDfd1beoIoPYNauZHkS97lCc3E4enRtqVkdQMwE0cBUK3XAQNbdKZgKmDtRaaUk1ZAy1GWP/pzEy5+GP24jWaRsuIBg=----ATTACHMENT:----MTg0NTU0ODkxNDcxNjQxIDc1ODU4MTk5MTQ4NzEzNjkgNzYwMTQ2NTIwODY3Nzc2OQ==