mirror of
https://github.com/callstack/react-native-testing-library.git
synced 2026-09-18 23:09:04 +08:00
feat: byA11yState matcher (#260)
* feat: byA11yState matcher * Kick CI * Update src/helpers/a11yAPI.js Co-Authored-By: Michał Pierzchała <thymikee@gmail.com> * Correct types Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
This commit is contained in:
@@ -137,32 +137,37 @@ const queryByA11yHint: ReactTestInstance = tree.queryByA11yHint('label');
|
||||
const queryAllByA11yHint: Array<ReactTestInstance> = tree.queryAllByA11yHint(
|
||||
'label'
|
||||
);
|
||||
const getByA11yRole: ReactTestInstance = tree.getByA11yRole('label');
|
||||
const getByA11yRole: ReactTestInstance = tree.getByA11yRole('button');
|
||||
const getAllByA11yRole: Array<ReactTestInstance> = tree.getAllByA11yRole(
|
||||
'label'
|
||||
'button'
|
||||
);
|
||||
const queryByA11yRole: ReactTestInstance = tree.queryByA11yRole('label');
|
||||
const queryByA11yRole: ReactTestInstance = tree.queryByA11yRole('button');
|
||||
const queryAllByA11yRole: Array<ReactTestInstance> = tree.queryAllByA11yRole(
|
||||
'label'
|
||||
'button'
|
||||
);
|
||||
const getByA11yStates: ReactTestInstance = tree.getByA11yStates('label');
|
||||
const getByA11yStatesArray: ReactTestInstance = tree.getByA11yStates(['label']);
|
||||
const getByA11yStates: ReactTestInstance = tree.getByA11yStates('selected');
|
||||
const getByA11yStatesArray: ReactTestInstance = tree.getByA11yStates(['selected']);
|
||||
const getAllByA11yStates: Array<ReactTestInstance> = tree.getAllByA11yStates(
|
||||
'label'
|
||||
'selected'
|
||||
);
|
||||
const getAllByA11yStatesArray: Array<
|
||||
ReactTestInstance
|
||||
> = tree.getAllByA11yStates(['label']);
|
||||
const queryByA11yStates: ReactTestInstance = tree.queryByA11yStates('label');
|
||||
> = tree.getAllByA11yStates(['selected']);
|
||||
const queryByA11yStates: ReactTestInstance = tree.queryByA11yStates('selected');
|
||||
const queryByA11yStatesArray: ReactTestInstance = tree.queryByA11yStates([
|
||||
'label',
|
||||
'selected',
|
||||
]);
|
||||
const queryAllByA11yStates: Array<
|
||||
ReactTestInstance
|
||||
> = tree.queryAllByA11yStates('label');
|
||||
> = tree.queryAllByA11yStates('selected');
|
||||
const queryAllByA11yStatesArray: Array<
|
||||
ReactTestInstance
|
||||
> = tree.queryAllByA11yStates(['label']);
|
||||
> = tree.queryAllByA11yStates(['selected']);
|
||||
|
||||
const getByA11yState: ReactTestInstance = tree.getByA11yState({ busy: true });
|
||||
const getAllByA11yState: Array<ReactTestInstance> = tree.getAllByA11yState({ busy: true });
|
||||
const queryByA11yState: ReactTestInstance = tree.queryByA11yState({ busy: true });
|
||||
const queryAllByA11yState: Array<ReactTestInstance> = tree.queryAllByA11yState({ busy: true });
|
||||
|
||||
const debugFn = tree.debug();
|
||||
const debugFnWithMessage = tree.debug('my message');
|
||||
|
||||
Vendored
+36
-28
@@ -1,4 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import { AccessibilityState, AccessibilityStates, AccessibilityRole } from 'react-native';
|
||||
import { ReactTestInstance, ReactTestRendererJSON } from 'react-test-renderer';
|
||||
|
||||
export interface GetByAPI {
|
||||
@@ -49,35 +50,42 @@ export interface QueryByAPI {
|
||||
) => Array<ReactTestInstance> | [];
|
||||
}
|
||||
|
||||
type QueryFn = (text: string | RegExp) => ReactTestInstance | null;
|
||||
type QueryAllFn = (text: string | RegExp) => Array<ReactTestInstance> | [];
|
||||
type GetFn = (text: string | RegExp) => ReactTestInstance;
|
||||
type GetAllFn = (text: string | RegExp) => Array<ReactTestInstance>;
|
||||
type ArrayQueryFn = (text: string | Array<string>) => ReactTestInstance | null;
|
||||
type ArrayQueryAllFn = (
|
||||
text: string | Array<string>
|
||||
) => Array<ReactTestInstance> | [];
|
||||
type ArrayGetFn = (text: string | Array<string>) => ReactTestInstance;
|
||||
type ArrayGetAllFn = (text: string | Array<string>) => Array<ReactTestInstance>;
|
||||
type GetReturn = ReactTestInstance;
|
||||
type GetAllReturn = Array<ReactTestInstance>;
|
||||
type QueryReturn = ReactTestInstance | null;
|
||||
type QueryAllReturn = Array<ReactTestInstance> | [];
|
||||
|
||||
export interface A11yAPI {
|
||||
getByA11yLabel: GetFn;
|
||||
getAllByA11yLabel: GetAllFn;
|
||||
queryByA11yLabel: QueryFn;
|
||||
queryAllByA11yLabel: QueryAllFn;
|
||||
getByA11yHint: GetFn;
|
||||
getAllByA11yHint: GetAllFn;
|
||||
queryByA11yHint: QueryFn;
|
||||
queryAllByA11yHint: QueryAllFn;
|
||||
getByA11yRole: GetFn;
|
||||
getAllByA11yRole: GetAllFn;
|
||||
queryByA11yRole: QueryFn;
|
||||
queryAllByA11yRole: QueryAllFn;
|
||||
getByA11yStates: ArrayGetFn;
|
||||
getAllByA11yStates: ArrayGetAllFn;
|
||||
queryByA11yStates: ArrayQueryFn;
|
||||
queryAllByA11yStates: ArrayQueryAllFn;
|
||||
}
|
||||
type A11yAPI = {
|
||||
// Label
|
||||
getByA11yLabel: (matcher: string | RegExp) => GetReturn,
|
||||
getAllByA11yLabel: (matcher: string | RegExp) => GetAllReturn,
|
||||
queryByA11yLabel: (matcher: string | RegExp) => QueryReturn,
|
||||
queryAllByA11yLabel: (matcher: string | RegExp) => QueryAllReturn,
|
||||
|
||||
// Hint
|
||||
getByA11yHint: (matcher: string | RegExp) => GetReturn,
|
||||
getAllByA11yHint: (matcher: string | RegExp) => GetAllReturn,
|
||||
queryByA11yHint: (matcher: string | RegExp) => QueryReturn,
|
||||
queryAllByA11yHint: (matcher: string | RegExp) => QueryAllReturn,
|
||||
|
||||
// Role
|
||||
getByA11yRole: (matcher: AccessibilityRole | RegExp) => GetReturn,
|
||||
getAllByA11yRole: (matcher: AccessibilityRole | RegExp) => GetAllReturn,
|
||||
queryByA11yRole: (matcher: AccessibilityRole | RegExp) => QueryReturn,
|
||||
queryAllByA11yRole: (matcher: AccessibilityRole | RegExp) => QueryAllReturn,
|
||||
|
||||
// States
|
||||
getByA11yStates: (matcher: AccessibilityStates | Array<AccessibilityStates>) => GetReturn,
|
||||
getAllByA11yStates: (matcher: AccessibilityStates | Array<AccessibilityStates>) => GetAllReturn,
|
||||
queryByA11yStates: (matcher: AccessibilityStates | Array<AccessibilityStates>) => QueryReturn,
|
||||
queryAllByA11yStates: (matcher: AccessibilityStates | Array<AccessibilityStates>) => QueryAllReturn,
|
||||
|
||||
// State
|
||||
getByA11yState: (matcher: AccessibilityState) => GetReturn,
|
||||
getAllByA11yState: (matcher: AccessibilityState) => GetAllReturn,
|
||||
queryByA11yState: (matcher: AccessibilityState) => QueryReturn,
|
||||
queryAllByA11yState: (matcher: AccessibilityState) => QueryAllReturn,
|
||||
};
|
||||
|
||||
export interface Thenable {
|
||||
then: (resolve: () => any, reject?: () => any) => any;
|
||||
|
||||
Reference in New Issue
Block a user