fix: preserve full language rows when filtering picker
This commit is contained in:
@@ -100,5 +100,22 @@ struct LanguagePickerTests {
|
||||
#expect(selected == "5")
|
||||
popup.close(animated: false)
|
||||
#expect(!pill.isAccessibilityHidden())
|
||||
|
||||
popup.showLanguages(choices, selected: "15", source: true, relativeTo: anchor)
|
||||
let search = try #require(descendants(popup.view).compactMap { $0 as? NSSearchField }.first)
|
||||
let filteredTable = try #require(descendants(popup.view).compactMap { $0 as? NSTableView }.first)
|
||||
// Shrink from a scrolled list to one result, then grow and shrink again.
|
||||
for query in ["Language 19", "", "no matching language", "Language 03"] {
|
||||
search.stringValue = query
|
||||
search.delegate?.controlTextDidChange?(Notification(name: NSControl.textDidChangeNotification, object: search))
|
||||
host.layoutSubtreeIfNeeded()
|
||||
let count = filteredTable.numberOfRows
|
||||
if count > 0 {
|
||||
let row = filteredTable.rect(ofRow: filteredTable.selectedRow)
|
||||
#expect(filteredTable.visibleRect.contains(row))
|
||||
let viewport = try #require(filteredTable.enclosingScrollView)
|
||||
#expect(viewport.contentSize.height >= min(CGFloat(count), 6) * filteredTable.rowHeight)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user