implemente using PrettyPrinter instead of CompactPrinter (#8773)

This commit is contained in:
NeedmeFordev 2026-02-21 12:39:41 +09:00 committed by GitHub
parent 167b5d04ba
commit 2f14fd8bb1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 2 deletions

View File

@ -3,7 +3,7 @@ package lmcoursier.internal
import java.io.File
import java.nio.file.Files
import java.nio.charset.StandardCharsets
import sjsonnew.support.scalajson.unsafe.{ CompactPrinter, Converter, Parser }
import sjsonnew.support.scalajson.unsafe.{ Converter, Parser, PrettyPrinter }
import scala.util.{ Try, Success, Failure }
object LockFile {
@ -29,7 +29,7 @@ object LockFile {
def write(lockFile: File, data: LockFileData): Either[String, Unit] = {
Try {
val json = Converter.toJson(data).get
val content = CompactPrinter(json)
val content = PrettyPrinter(json)
lockFile.getParentFile.mkdirs()
Files.write(lockFile.toPath, content.getBytes(StandardCharsets.UTF_8))
} match {

View File

@ -104,6 +104,27 @@ class LockFileSpec extends AnyFunSuite {
}
}
test("LockFile.write outputs pretty JSON") {
val lockData = LockFileData(
version = "1.0",
buildClock = "pretty-test",
configurations = Vector.empty,
metadata = LockFileMetadata(
sbtVersion = "2.0.0",
scalaVersion = Some("3.8.1")
)
)
IO.withTemporaryDirectory { dir =>
val lockFile = new File(dir, "pretty.lock")
val writeResult = LockFile.write(lockFile, lockData)
assert(writeResult.isRight, s"Write failed: ${writeResult.left.getOrElse("")}")
val content = IO.read(lockFile)
assert(content.contains("\n"), "Expected pretty-printed JSON with multiple lines")
}
}
test("cacheFileToOriginalUrl converts cache file URL to HTTP URL") {
IO.withTemporaryDirectory { cacheDir =>
val fileUrl =