1
0
Fork 0
mirror of https://github.com/composer/composer synced 2025-05-10 17:12:51 +00:00

Preserve indentation when writing JSON files (#11390)

Refs #11341
This commit is contained in:
MaximAL 2023-07-19 15:13:06 +03:00 committed by GitHub
parent 16d1b11c26
commit 1c9fbeb978
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 58 additions and 8 deletions

View file

@ -364,6 +364,29 @@ class JsonFileTest extends TestCase
$this->assertEquals($data, $doubleData);
}
public function testPreserveIndentationAfterRead(): void
{
copy(__DIR__.'/Fixtures/tabs.json', __DIR__.'/Fixtures/tabs2.json');
$jsonFile = new JsonFile(__DIR__.'/Fixtures/tabs2.json');
$data = $jsonFile->read();
$jsonFile->write(['foo' => 'baz']);
self::assertSame("{\n\t\"foo\": \"baz\"\n}\n", file_get_contents(__DIR__.'/Fixtures/tabs2.json'));
unlink(__DIR__.'/Fixtures/tabs2.json');
}
public function testOverwritesIndentationByDefault(): void
{
copy(__DIR__.'/Fixtures/tabs.json', __DIR__.'/Fixtures/tabs2.json');
$jsonFile = new JsonFile(__DIR__.'/Fixtures/tabs2.json');
$jsonFile->write(['foo' => 'baz']);
self::assertSame("{\n \"foo\": \"baz\"\n}\n", file_get_contents(__DIR__.'/Fixtures/tabs2.json'));
unlink(__DIR__.'/Fixtures/tabs2.json');
}
private function expectParseException(string $text, string $json): void
{
try {