'test/patch-test', 'require' => [ 'civicrm/composer-compile-plugin' => '@dev', 'test/cherry-jam' => '@dev', 'cweagans/composer-patches' => '*', ], 'minimum-stability' => 'dev', 'extra' => [ 'patches' => [ 'test/cherry-jam' => [ 'Some hackery' => 'cherry-jam-hackery.diff' ], ], ], ]; // For this test, we'll need to patch. We want a copy (not symlink) so we can hack at it. if (!is_array($r['repositories']['test-cherry-jam'])) { throw new \RuntimeException("Inconsistency in composer.json"); } $r['repositories']['test-cherry-jam']['options'] = [ 'symlink' => false, ]; $r['config']['allow-plugins']['cweagans/composer-patches'] = true; return $r; } public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); self::initTestProject(static::getComposerJson()); file_put_contents( self::getTestDir() . '/cherry-jam-hackery.diff', file_get_contents(self::getPluginSourceDir() . '/tests/pkgs/cherry-jam-hackery.diff') ); } /** * When running 'composer install', it should generate 'jam.out' with suitable patches in place. */ public function testComposerInstall() { $this->assertFileNotExists('vendor/test/cherry-jam/jam.out'); PH::runOk('COMPOSER_COMPILE=1 composer install -v'); $this->assertFileContent('vendor/test/cherry-jam/jam.out', "patches in the house\n"); } } __halt_compiler();----SIGNATURE:----MFY82eoMSxOXVEm1XzWcjamJROsiNDmW+2+rZ6kUU0M3mjXUP+tLaTzsKXTMVPXCotQIscFZ+u8sUx5yrdrvzg4BEqwPMemELzx3DFQw5rNCqAFerKJr2pzZofX5iSC0jAItekg4+6o2Z3XeNbBPqnqfFHPbS0R7fO+07WWxRip7bx8JkUn51DsvIUYFJ5JSvSd64JgRn8mCEbq4o9azxc+tDJjUUgaUgwNJHJSle2/B1RnR0M7A/C/ck8jVMWj+3gqJdgyxv5nC/GQbfccI/qbIn+64y4V2hfquoEtjOBgV7SUpiAaRz9SoMVFP7XwBCI4DYS6RAUKGm/RffWnUXvyvldni4AS2/pUkx13MnvzVWB/FzY+vyo8cMJswEdTA572EhkPOTKu7wIxTAIFXSD1IV06qc0fmCD7PsSmYgKKcO4DVoFr5Z6CDvTqzU8N13ZaAg/xQWe+J9O74rbhgMNZOTxjBM2kawn2ayfOO1jpxilNBfbdvS3xphOGxI6cEEv9Isg0f6I4BdFXGGwkGE+Hzp8CaiQsHzXzVLUynqpgA2luZN/7Jzx+zZFglBhXH/XEbUSYg0K2Dl1pfwcuxmxAZuXp76ja01USWY/LOIbemRrXm3V5h5z2E+JYoP0KL59MKNyssSWLJnFSyWbSUNAnt9TpGR77VppGHat6mFrI=----ATTACHMENT:----OTgwNjA0MDE3MDc3MTUwNyA5MjMxOTYyMjQyODQzNzM2IDQ2NzcwODgxNjY4Njg3MQ==