rector/packages/Testing/Fixture/FixtureFileUpdater.php
2022-09-01 11:24:29 +00:00

26 lines
903 B
PHP

<?php
declare (strict_types=1);
namespace Rector\Testing\Fixture;
use RectorPrefix202209\Nette\Utils\FileSystem;
final class FixtureFileUpdater
{
public static function updateFixtureContent(string $originalFilePath, string $changedContent, string $fixtureFilepath) : void
{
if (!\getenv('UPDATE_TESTS') && !\getenv('UT')) {
return;
}
$newOriginalContent = self::resolveNewFixtureContent($originalFilePath, $changedContent);
FileSystem::write($fixtureFilepath, $newOriginalContent);
}
private static function resolveNewFixtureContent(string $originalFilePath, string $changedContent) : string
{
$originalContent = FileSystem::read($originalFilePath);
if ($originalContent === $changedContent) {
return $originalContent;
}
return $originalContent . '-----' . \PHP_EOL . $changedContent;
}
}