feat: Test utils API audit, additional feature coverage (RTL, grid nav, etc) in prep for RC/1.0#9998
Open
feat: Test utils API audit, additional feature coverage (RTL, grid nav, etc) in prep for RC/1.0#9998
Conversation
also gives us the option of adding args in the future
this is a lower level than using react testing library of which we wernt really using anything unique from that library. trade off is that we need to wrap act so it works for other react versions, still not 100% sure if we wanna do this
…essages more descriptive
|
Build successful! 🎉 |
|
Build successful! 🎉 |
|
Build successful! 🎉 |
|
Build successful! 🎉 |
## API Changes
@react-aria/test-utils/@react-aria/test-utils:CheckboxGroupTester CheckboxGroupTester {
- checkboxes: Array<HTMLElement>
- checkboxgroup: HTMLElement
+ checkboxes: () => Array<HTMLElement>
+ checkboxgroup: () => HTMLElement
constructor: (CheckboxGroupTesterOpts) => void
findCheckbox: ({
- checkboxIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- selectedCheckboxes: Array<HTMLElement>
+ selectedCheckboxes: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
toggleCheckbox: (TriggerCheckboxOptions) => Promise<void>
}/@react-aria/test-utils:ComboBoxTester ComboBoxTester {
close: () => Promise<void>
- combobox: HTMLElement
+ combobox: () => HTMLElement
constructor: (ComboBoxTesterOpts) => void
findOption: ({
- optionIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- focusedOption: HTMLElement | null
- listbox: HTMLElement | null
+ focusedOption: () => HTMLElement | null
+ listbox: () => HTMLElement | null
open: (ComboBoxOpenOpts) => Promise<void>
options: ({
element?: HTMLElement
}) => Array<HTMLElement>
- sections: Array<HTMLElement>
- selectOption: (ComboBoxSelectOpts) => Promise<void>
+ sections: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
- trigger: HTMLElement
+ toggleOptionSelection: (ComboBoxSelectOpts) => Promise<void>
+ trigger: () => HTMLElement
}/@react-aria/test-utils:DialogTester DialogTester {
close: () => Promise<void>
constructor: (DialogTesterOpts) => void
- dialog: HTMLElement | null
+ dialog: () => HTMLElement | null
open: (DialogOpenOpts) => Promise<void>
setInteractionType: (UserOpts['interactionType']) => void
- trigger: HTMLElement
+ trigger: () => HTMLElement
}/@react-aria/test-utils:GridListTester GridListTester {
cells: ({
element?: HTMLElement
}) => Array<HTMLElement>
constructor: (GridListTesterOpts) => void
findRow: ({
- rowIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- gridlist: HTMLElement
- rows: Array<HTMLElement>
- selectedRows: Array<HTMLElement>
+ gridlist: () => HTMLElement
+ rows: () => Array<HTMLElement>
+ selectedRows: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
toggleRowSelection: (GridListToggleRowOpts) => Promise<void>
triggerRowAction: (GridListRowActionOpts) => Promise<void>
}/@react-aria/test-utils:ListBoxTester ListBoxTester {
constructor: (ListBoxTesterOpts) => void
findOption: ({
- optionIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- listbox: HTMLElement
+ listbox: () => HTMLElement
options: ({
element?: HTMLElement
}) => Array<HTMLElement>
- sections: Array<HTMLElement>
- selectedOptions: Array<HTMLElement>
+ sections: () => Array<HTMLElement>
+ selectedOptions: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
toggleOptionSelection: (ListBoxToggleOptionOpts) => Promise<void>
triggerOptionAction: (ListBoxOptionActionOpts) => Promise<void>
}/@react-aria/test-utils:MenuTester MenuTester {
close: () => Promise<void>
constructor: (MenuTesterOpts) => void
findOption: ({
- optionIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- menu: HTMLElement | null
+ menu: () => HTMLElement | null
open: (MenuOpenOpts) => Promise<void>
- openSubmenu: (MenuOpenSubmenuOpts) => Promise<MenuTester | null>
+ openSubmenu: (MenuOpenSubmenuOpts) => Promise<MenuTester>
options: ({
element?: HTMLElement
}) => Array<HTMLElement>
- sections: Array<HTMLElement>
- selectOption: (MenuSelectOpts) => Promise<void>
+ sections: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
- submenuTriggers: Array<HTMLElement>
- trigger: HTMLElement
+ submenuTriggers: () => Array<HTMLElement>
+ toggleOptionSelection: (MenuSelectOpts) => Promise<void>
+ trigger: () => HTMLElement
}/@react-aria/test-utils:RadioGroupTester RadioGroupTester {
constructor: (RadioGroupTesterOpts) => void
findRadio: ({
- radioIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- radiogroup: HTMLElement
- radios: Array<HTMLElement>
- selectedRadio: HTMLElement | null
+ radiogroup: () => HTMLElement
+ radios: () => Array<HTMLElement>
+ selectedRadio: () => HTMLElement | null
setInteractionType: (UserOpts['interactionType']) => void
triggerRadio: (TriggerRadioOptions) => Promise<void>
}/@react-aria/test-utils:SelectTester SelectTester {
close: () => Promise<void>
constructor: (SelectTesterOpts) => void
findOption: ({
- optionIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- listbox: HTMLElement | null
+ listbox: () => HTMLElement | null
open: (SelectOpenOpts) => Promise<void>
options: ({
element?: HTMLElement
}) => Array<HTMLElement>
- sections: Array<HTMLElement>
- selectOption: (SelectTriggerOptionOpts) => Promise<void>
+ sections: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
- trigger: HTMLElement
+ toggleOptionSelection: (SelectTriggerOptionOpts) => Promise<void>
+ trigger: () => HTMLElement
}/@react-aria/test-utils:TableTester TableTester {
cells: ({
element?: HTMLElement
}) => Array<HTMLElement>
- columns: Array<HTMLElement>
+ columns: () => Array<HTMLElement>
constructor: (TableTesterOpts) => void
findCell: ({
text: string
}) => HTMLElement
findRow: ({
- rowIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- rowGroups: Array<HTMLElement>
- rowHeaders: Array<HTMLElement>
- rows: Array<HTMLElement>
- selectedRows: Array<HTMLElement>
+ footerRows: () => Array<HTMLElement>
+ rowGroups: () => Array<HTMLElement>
+ rowHeaders: () => Array<HTMLElement>
+ rows: () => Array<HTMLElement>
+ selectedRows: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
- table: HTMLElement
+ table: () => HTMLElement
toggleRowExpansion: (TableToggleExpansionOpts) => Promise<void>
toggleRowSelection: (TableToggleRowOpts) => Promise<void>
toggleSelectAll: ({
interactionType?: UserOpts['interactionType']
toggleSort: (TableToggleSortOpts) => Promise<void>
triggerColumnHeaderAction: (TableColumnHeaderActionOpts) => Promise<void>
triggerRowAction: (TableRowActionOpts) => Promise<void>
}/@react-aria/test-utils:TabsTester TabsTester {
- activeTabpanel: HTMLElement | null
+ activeTabpanel: () => HTMLElement | null
constructor: (TabsTesterOpts) => void
findTab: ({
- tabIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- selectedTab: HTMLElement | null
+ selectedTab: () => HTMLElement | null
setInteractionType: (UserOpts['interactionType']) => void
- tablist: HTMLElement
- tabpanels: Array<HTMLElement>
- tabs: Array<HTMLElement>
+ tablist: () => HTMLElement
+ tabpanels: () => Array<HTMLElement>
+ tabs: () => Array<HTMLElement>
triggerTab: (TriggerTabOptions) => Promise<void>
}/@react-aria/test-utils:TreeTester TreeTester {
cells: ({
element?: HTMLElement
}) => Array<HTMLElement>
constructor: (TreeTesterOpts) => void
findRow: ({
- rowIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- rows: Array<HTMLElement>
- selectedRows: Array<HTMLElement>
+ rows: () => Array<HTMLElement>
+ selectedRows: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
toggleRowExpansion: (TreeToggleExpansionOpts) => Promise<void>
toggleRowSelection: (TreeToggleRowOpts) => Promise<void>
- tree: HTMLElement
+ tree: () => HTMLElement
triggerRowAction: (TreeRowActionOpts) => Promise<void>
}@react-spectrum/test-utils/@react-spectrum/test-utils:CheckboxGroupTester CheckboxGroupTester {
- checkboxes: Array<HTMLElement>
- checkboxgroup: HTMLElement
+ checkboxes: () => Array<HTMLElement>
+ checkboxgroup: () => HTMLElement
constructor: (CheckboxGroupTesterOpts) => void
findCheckbox: ({
- checkboxIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- selectedCheckboxes: Array<HTMLElement>
+ selectedCheckboxes: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
toggleCheckbox: (TriggerCheckboxOptions) => Promise<void>
}/@react-spectrum/test-utils:ComboBoxTester ComboBoxTester {
close: () => Promise<void>
- combobox: HTMLElement
+ combobox: () => HTMLElement
constructor: (ComboBoxTesterOpts) => void
findOption: ({
- optionIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- focusedOption: HTMLElement | null
- listbox: HTMLElement | null
+ focusedOption: () => HTMLElement | null
+ listbox: () => HTMLElement | null
open: (ComboBoxOpenOpts) => Promise<void>
options: ({
element?: HTMLElement
}) => Array<HTMLElement>
- sections: Array<HTMLElement>
- selectOption: (ComboBoxSelectOpts) => Promise<void>
+ sections: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
- trigger: HTMLElement
+ toggleOptionSelection: (ComboBoxSelectOpts) => Promise<void>
+ trigger: () => HTMLElement
}/@react-spectrum/test-utils:DialogTester DialogTester {
close: () => Promise<void>
constructor: (DialogTesterOpts) => void
- dialog: HTMLElement | null
+ dialog: () => HTMLElement | null
open: (DialogOpenOpts) => Promise<void>
setInteractionType: (UserOpts['interactionType']) => void
- trigger: HTMLElement
+ trigger: () => HTMLElement
}/@react-spectrum/test-utils:GridListTester GridListTester {
cells: ({
element?: HTMLElement
}) => Array<HTMLElement>
constructor: (GridListTesterOpts) => void
findRow: ({
- rowIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- gridlist: HTMLElement
- rows: Array<HTMLElement>
- selectedRows: Array<HTMLElement>
+ gridlist: () => HTMLElement
+ rows: () => Array<HTMLElement>
+ selectedRows: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
toggleRowSelection: (GridListToggleRowOpts) => Promise<void>
triggerRowAction: (GridListRowActionOpts) => Promise<void>
}/@react-spectrum/test-utils:ListBoxTester ListBoxTester {
constructor: (ListBoxTesterOpts) => void
findOption: ({
- optionIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- listbox: HTMLElement
+ listbox: () => HTMLElement
options: ({
element?: HTMLElement
}) => Array<HTMLElement>
- sections: Array<HTMLElement>
- selectedOptions: Array<HTMLElement>
+ sections: () => Array<HTMLElement>
+ selectedOptions: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
toggleOptionSelection: (ListBoxToggleOptionOpts) => Promise<void>
triggerOptionAction: (ListBoxOptionActionOpts) => Promise<void>
}/@react-spectrum/test-utils:MenuTester MenuTester {
close: () => Promise<void>
constructor: (MenuTesterOpts) => void
findOption: ({
- optionIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- menu: HTMLElement | null
+ menu: () => HTMLElement | null
open: (MenuOpenOpts) => Promise<void>
- openSubmenu: (MenuOpenSubmenuOpts) => Promise<MenuTester | null>
+ openSubmenu: (MenuOpenSubmenuOpts) => Promise<MenuTester>
options: ({
element?: HTMLElement
}) => Array<HTMLElement>
- sections: Array<HTMLElement>
- selectOption: (MenuSelectOpts) => Promise<void>
+ sections: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
- submenuTriggers: Array<HTMLElement>
- trigger: HTMLElement
+ submenuTriggers: () => Array<HTMLElement>
+ toggleOptionSelection: (MenuSelectOpts) => Promise<void>
+ trigger: () => HTMLElement
}/@react-spectrum/test-utils:RadioGroupTester RadioGroupTester {
constructor: (RadioGroupTesterOpts) => void
findRadio: ({
- radioIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- radiogroup: HTMLElement
- radios: Array<HTMLElement>
- selectedRadio: HTMLElement | null
+ radiogroup: () => HTMLElement
+ radios: () => Array<HTMLElement>
+ selectedRadio: () => HTMLElement | null
setInteractionType: (UserOpts['interactionType']) => void
triggerRadio: (TriggerRadioOptions) => Promise<void>
}/@react-spectrum/test-utils:SelectTester SelectTester {
close: () => Promise<void>
constructor: (SelectTesterOpts) => void
findOption: ({
- optionIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- listbox: HTMLElement | null
+ listbox: () => HTMLElement | null
open: (SelectOpenOpts) => Promise<void>
options: ({
element?: HTMLElement
}) => Array<HTMLElement>
- sections: Array<HTMLElement>
- selectOption: (SelectTriggerOptionOpts) => Promise<void>
+ sections: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
- trigger: HTMLElement
+ toggleOptionSelection: (SelectTriggerOptionOpts) => Promise<void>
+ trigger: () => HTMLElement
}/@react-spectrum/test-utils:TableTester TableTester {
cells: ({
element?: HTMLElement
}) => Array<HTMLElement>
- columns: Array<HTMLElement>
+ columns: () => Array<HTMLElement>
constructor: (TableTesterOpts) => void
findCell: ({
text: string
}) => HTMLElement
findRow: ({
- rowIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- rowGroups: Array<HTMLElement>
- rowHeaders: Array<HTMLElement>
- rows: Array<HTMLElement>
- selectedRows: Array<HTMLElement>
+ footerRows: () => Array<HTMLElement>
+ rowGroups: () => Array<HTMLElement>
+ rowHeaders: () => Array<HTMLElement>
+ rows: () => Array<HTMLElement>
+ selectedRows: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
- table: HTMLElement
+ table: () => HTMLElement
toggleRowExpansion: (TableToggleExpansionOpts) => Promise<void>
toggleRowSelection: (TableToggleRowOpts) => Promise<void>
toggleSelectAll: ({
interactionType?: UserOpts['interactionType']
toggleSort: (TableToggleSortOpts) => Promise<void>
triggerColumnHeaderAction: (TableColumnHeaderActionOpts) => Promise<void>
triggerRowAction: (TableRowActionOpts) => Promise<void>
}/@react-spectrum/test-utils:TabsTester TabsTester {
- activeTabpanel: HTMLElement | null
+ activeTabpanel: () => HTMLElement | null
constructor: (TabsTesterOpts) => void
findTab: ({
- tabIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- selectedTab: HTMLElement | null
+ selectedTab: () => HTMLElement | null
setInteractionType: (UserOpts['interactionType']) => void
- tablist: HTMLElement
- tabpanels: Array<HTMLElement>
- tabs: Array<HTMLElement>
+ tablist: () => HTMLElement
+ tabpanels: () => Array<HTMLElement>
+ tabs: () => Array<HTMLElement>
triggerTab: (TriggerTabOptions) => Promise<void>
}/@react-spectrum/test-utils:TreeTester TreeTester {
cells: ({
element?: HTMLElement
}) => Array<HTMLElement>
constructor: (TreeTesterOpts) => void
findRow: ({
- rowIndexOrText: number | string
+ indexOrText: number | string
}) => HTMLElement
- rows: Array<HTMLElement>
- selectedRows: Array<HTMLElement>
+ rows: () => Array<HTMLElement>
+ selectedRows: () => Array<HTMLElement>
setInteractionType: (UserOpts['interactionType']) => void
toggleRowExpansion: (TreeToggleExpansionOpts) => Promise<void>
toggleRowSelection: (TreeToggleRowOpts) => Promise<void>
- tree: HTMLElement
+ tree: () => HTMLElement
triggerRowAction: (TreeRowActionOpts) => Promise<void>
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See commits for what changed
Some additional pattern support to be opened in a different PR maybe, to discuss if we think they are worth it or not.
✅ Pull Request Checklist:
📝 Test Instructions:
🧢 Your Project:
RSP