fix(download): suffix only colliding quality variants

This commit is contained in:
zarzet
2026-07-29 02:43:35 +07:00
parent 1f55523b64
commit e7fbaf7b75
41 changed files with 629 additions and 110 deletions
@@ -150,6 +150,38 @@ class NativeFinalizationPolicyTest {
)
}
@Test
fun measuredQualityIsAddedOnlyAfterCleanNameCollision() {
val stagedName = "Artist - Track - qv_ab12cd34.flac"
assertEquals(
"Artist - Track.flac",
NativeFinalizationPolicy.removeQualityVariantStagingLabel(
fileName = stagedName,
stagingLabel = "qv_ab12cd34",
),
)
assertEquals(
"Artist - Track.flac",
NativeFinalizationPolicy.resolveQualityVariantFilename(
fileName = stagedName,
stagingLabel = "qv_ab12cd34",
qualityLabel = "24bit-96kHz",
collisionOnly = true,
cleanNameExists = false,
),
)
assertEquals(
"Artist - Track - 24bit-96kHz.flac",
NativeFinalizationPolicy.resolveQualityVariantFilename(
fileName = stagedName,
stagingLabel = "qv_ab12cd34",
qualityLabel = "24bit-96kHz",
collisionOnly = true,
cleanNameExists = true,
),
)
}
@Test
fun deferredSafNamingNeverPublishesTheNativeCacheName() {
val logicalName = NativeFinalizationPolicy.logicalOutputFileName(