;
getAllByType: (type: React.ComponentType
) => Array;
getAllByText: (text: string | RegExp) => Array;
- getAllByPlaceholder: (placeholder: string | RegExp) => Array;
+ getAllByPlaceholder: (
+ placeholder: string | RegExp
+ ) => Array;
getAllByProps: (props: Record) => Array;
}
@@ -19,29 +21,63 @@ export interface QueryByAPI {
queryByName: (name: React.ReactType | string) => ReactTestInstance | null;
queryByType: (type: React.ComponentType
) => ReactTestInstance | null;
queryByText: (name: string | RegExp) => ReactTestInstance | null;
- queryByPlaceholder: (placeholder: string | RegExp) => ReactTestInstance | null;
+ queryByPlaceholder: (
+ placeholder: string | RegExp
+ ) => ReactTestInstance | null;
queryByProps: (props: Record) => ReactTestInstance | null;
queryByTestId: (testID: string) => ReactTestInstance | null;
- queryAllByName: (name: React.ReactType | string) => Array | [];
+ queryAllByName: (
+ name: React.ReactType | string
+ ) => Array | [];
queryAllByType: (
type: React.ComponentType
) => Array | [];
queryAllByText: (text: string | RegExp) => Array | [];
- queryAllByPlaceholder: (placeholder: string | RegExp) => Array | [];
+ queryAllByPlaceholder: (
+ placeholder: string | RegExp
+ ) => Array | [];
queryAllByProps: (
props: Record
) => Array | [];
}
+type QueryFn = (text: string | RegExp) => ReactTestInstance | null;
+type GetFn = (text: string | RegExp) => ReactTestInstance;
+type GetAllFn = (text: string | RegExp) => Array | [];
+type ArrayQueryFn = (text: string | Array) => ReactTestInstance | null;
+type ArrayGetFn = (text: string | Array) => ReactTestInstance;
+type ArrayGetAllFn = (
+ text: string | Array
+) => Array | [];
+
+export interface A11yAPI {
+ getByA11yLabel: GetFn;
+ getAllByA11yLabel: GetAllFn;
+ queryByA11yLabel: QueryFn;
+ queryAllByA11yLabel: GetAllFn;
+ getByA11yHint: GetFn;
+ getAllByA11yHint: GetAllFn;
+ queryByA11yHint: QueryFn;
+ queryAllByA11yHint: GetAllFn;
+ getByA11yRole: GetFn;
+ getAllByA11yRole: GetAllFn;
+ queryByA11yRole: QueryFn;
+ queryAllByA11yRole: GetAllFn;
+ getByA11yStates: ArrayGetFn;
+ getAllByA11yStates: ArrayGetAllFn;
+ queryByA11yStates: ArrayQueryFn;
+ queryAllByA11yStates: ArrayGetAllFn;
+}
+
export interface Thenable {
- then: (resolve: () => any, reject?: () => any) => any,
+ then: (resolve: () => any, reject?: () => any) => any;
}
export interface RenderOptions {
createNodeMock: (element: React.ReactElement) => any;
}
-export interface RenderAPI extends GetByAPI, QueryByAPI {
+export interface RenderAPI extends GetByAPI, QueryByAPI, A11yAPI {
update(nextElement: React.ReactElement): void;
rerender(nextElement: React.ReactElement): void;
unmount(nextElement?: React.ReactElement): void;
diff --git a/yarn.lock b/yarn.lock
index 5b18d772b..b7bb95fce 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1080,6 +1080,44 @@
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916"
integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw==
+"@typescript-eslint/eslint-plugin@^1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.9.0.tgz#29d73006811bf2563b88891ceeff1c5ea9c8d9c6"
+ integrity sha512-FOgfBorxjlBGpDIw+0LaZIXRX6GEEUfzj8LXwaQIUCp+gDOvkI+1WgugJ7SmWiISqK9Vj5r8S7NDKO/LB+6X9A==
+ dependencies:
+ "@typescript-eslint/experimental-utils" "1.9.0"
+ "@typescript-eslint/parser" "1.9.0"
+ eslint-utils "^1.3.1"
+ functional-red-black-tree "^1.0.1"
+ regexpp "^2.0.1"
+ requireindex "^1.2.0"
+ tsutils "^3.7.0"
+
+"@typescript-eslint/experimental-utils@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.9.0.tgz#a92777d0c92d7bc8627abd7cdb06cdbcaf2b39e8"
+ integrity sha512-1s2dY9XxBwtS9IlSnRIlzqILPyeMly5tz1bfAmQ84Ul687xBBve5YsH5A5EKeIcGurYYqY2w6RkHETXIwnwV0A==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "1.9.0"
+
+"@typescript-eslint/parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.9.0.tgz#5796cbfcb9a3a5757aeb671c1ac88d7a94a95962"
+ integrity sha512-CWgC1XrQ34H/+LwAU7vY5xteZDkNqeAkeidEpJnJgkKu0yqQ3ZhQ7S+dI6MX4vmmM1TKRbOrKuXc6W0fIHhdbA==
+ dependencies:
+ "@typescript-eslint/experimental-utils" "1.9.0"
+ "@typescript-eslint/typescript-estree" "1.9.0"
+ eslint-scope "^4.0.0"
+ eslint-visitor-keys "^1.0.0"
+
+"@typescript-eslint/typescript-estree@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.9.0.tgz#5d6d49be936e96fb0f859673480f89b070a5dd9b"
+ integrity sha512-7Eg0TEQpCkTsEwsl1lIzd6i7L3pJLQFWesV08dS87bNz0NeSjbL78gNAP1xCKaCejkds4PhpLnZkaAjx9SU8OA==
+ dependencies:
+ lodash.unescape "4.0.1"
+ semver "5.5.0"
+
JSONStream@^1.0.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -2705,7 +2743,7 @@ eslint-scope@3.7.1:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-scope@^4.0.3:
+eslint-scope@^4.0.0, eslint-scope@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
@@ -4890,6 +4928,11 @@ lodash.throttle@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
+lodash.unescape@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
+ integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
+
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
@@ -6687,6 +6730,11 @@ require-main-filename@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+requireindex@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef"
+ integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==
+
resolve-cwd@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
@@ -6873,6 +6921,11 @@ semver-diff@^2.0.0:
version "5.5.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
+semver@5.5.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
+ integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
+
semver@6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65"
@@ -7429,10 +7482,17 @@ trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
-tslib@^1.9.0:
+tslib@^1.8.1, tslib@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
+tsutils@^3.7.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.10.0.tgz#6f1c95c94606e098592b0dff06590cf9659227d6"
+ integrity sha512-q20XSMq7jutbGB8luhKKsQldRKWvyBO2BGqni3p4yq8Ys9bEP/xQw3KepKmMRt9gJ4lvQSScrihJrcKdKoSU7Q==
+ dependencies:
+ tslib "^1.8.1"
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"