style: tighten emoji grid spacing

This commit is contained in:
2026-10-17 01:47:50 +02:00
parent f9644d4afd
commit 378cad4bf1
3 changed files with 33 additions and 4 deletions
@@ -0,0 +1,29 @@
import AppKit
import ConjureKit
import Testing
@testable import Conjure
@Test @MainActor func emojiDownNavigationFollowsRenderedColumns() throws {
_ = NSApplication.shared
let suite = "EmojiGrid.\(UUID().uuidString)"
let defaults = UserDefaults(suiteName: suite)!
let pasteboard = NSPasteboard.withUniqueName()
defer { defaults.removePersistentDomain(forName: suite); pasteboard.releaseGlobally() }
let picker = EmojiPickerController(defaults: defaults, pasteboard: pasteboard)
let window = NSWindow(contentRect: NSRect(x: 0, y: 0, width: 750, height: 400),
styleMask: [.borderless], backing: .buffered, defer: false)
window.contentView = picker.view
picker.view.layoutSubtreeIfNeeded()
let scroll = try #require(picker.view.subviews.compactMap { $0 as? NSScrollView }.first)
let grid = try #require(scroll.documentView as? NSCollectionView)
let layout = try #require(grid.collectionViewLayout)
let first = try #require(layout.layoutAttributesForItem(at: IndexPath(item: 0, section: 0)))
let nextRow = try #require((1..<EmojiCatalog.all.count).first { index in
guard let frame = layout.layoutAttributesForItem(at: IndexPath(item: index, section: 0))?.frame else { return false }
return frame.minY > first.frame.minY
})
#expect(picker.handle(#selector(NSResponder.moveDown(_:))))
picker.copySelection()
#expect(pasteboard.string(forType: .string) == EmojiCatalog.all[nextRow].value)
print("Emoji grid: \(nextRow) columns at 750 points; down navigation follows the rendered row.")
}