Hide unavailable display scale options

This commit is contained in:
David Heinemeier Hansson
2026-07-23 18:06:19 -07:00
parent 58ec29f20a
commit 63955e787f
3 changed files with 90 additions and 5 deletions
+25
View File
@@ -18,6 +18,31 @@ assertEqual(monitor.cleanScale(3, 1280, 800), '3.2', 'monitor matches clean VM s
assertEqual(monitor.cleanScale(1.25, 1280, 800), '1.25', 'monitor preserves an already clean scale')
assertEqual(monitor.cleanScale(1.25, 6016, 3384), '1.33', 'monitor matches clean physical display scale')
assertEqual(monitor.cleanScale(1.6, 0, 800), '', 'monitor rejects a missing display mode')
assertEqual(
monitor.matchingScaleIndex(['1', '1.25', '1.6', '2', '3', '4'], 3.2, 1280, 800),
4,
'monitor selects requested 3x for effective VM scale'
)
assertEqual(
monitor.matchingScaleIndex(['1', '1.25', '1.6', '2', '3', '4'], 4, 4, 4),
5,
'monitor selects only the closest preset when clean scales collide'
)
assertDeepEqual(
monitor.availableScales(['1', '1.25', '1.6', '2', '3', '4'], 1280, 800),
['1', '1.25', '1.6', '2', '3', '4'],
'monitor keeps presets that produce unique reachable VM scales'
)
assertDeepEqual(
monitor.availableScales(['1', '1.25', '1.6', '2', '3', '4'], 5968, 3230),
['1', '2'],
'monitor hides presets the current mode cannot reach'
)
assertDeepEqual(
monitor.availableScales(['1', '1.25', '1.6', '2', '3', '4'], 0, 0),
['1', '1.25', '1.6', '2', '3', '4'],
'monitor keeps presets until display dimensions are known'
)
assertEqual(monitor.brightnessName(96), 'Sun blast', 'monitor names very bright displays')
assertEqual(monitor.brightnessName(12), 'Candlelit', 'monitor names dim displays')