@testing-library/react-native 9.2.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +4 -6
  2. package/build/cleanup.js +4 -0
  3. package/build/cleanup.js.map +1 -1
  4. package/build/index.flow.js +107 -95
  5. package/build/pure.d.ts +5 -1
  6. package/build/pure.js +8 -0
  7. package/build/pure.js.map +1 -1
  8. package/build/{helpers → queries}/a11yAPI.d.ts +0 -0
  9. package/build/{helpers → queries}/a11yAPI.js +0 -0
  10. package/build/{helpers → queries}/a11yAPI.js.map +1 -1
  11. package/build/queries/displayValue.d.ts +13 -0
  12. package/build/{helpers/byDisplayValue.js → queries/displayValue.js} +23 -18
  13. package/build/queries/displayValue.js.map +1 -0
  14. package/build/{helpers → queries}/makeA11yQuery.d.ts +0 -0
  15. package/build/{helpers → queries}/makeA11yQuery.js +1 -1
  16. package/build/{helpers → queries}/makeA11yQuery.js.map +1 -1
  17. package/build/queries/makeQueries.d.ts +19 -0
  18. package/build/{helpers → queries}/makeQueries.js +17 -16
  19. package/build/queries/makeQueries.js.map +1 -0
  20. package/build/queries/placeholderText.d.ts +13 -0
  21. package/build/{helpers/byPlaceholderText.js → queries/placeholderText.js} +23 -18
  22. package/build/queries/placeholderText.js.map +1 -0
  23. package/build/queries/testId.d.ts +13 -0
  24. package/build/{helpers/byTestId.js → queries/testId.js} +19 -14
  25. package/build/queries/testId.js.map +1 -0
  26. package/build/queries/text.d.ts +17 -0
  27. package/build/{helpers/byText.js → queries/text.js} +25 -20
  28. package/build/queries/text.js.map +1 -0
  29. package/build/queries/unsafeProps.d.ts +16 -0
  30. package/build/queries/unsafeProps.js +58 -0
  31. package/build/queries/unsafeProps.js.map +1 -0
  32. package/build/queries/unsafeType.d.ts +9 -0
  33. package/build/queries/unsafeType.js +54 -0
  34. package/build/queries/unsafeType.js.map +1 -0
  35. package/build/render.d.ts +35 -44
  36. package/build/render.js +7 -12
  37. package/build/render.js.map +1 -1
  38. package/build/screen.d.ts +4 -0
  39. package/build/screen.js +115 -0
  40. package/build/screen.js.map +1 -0
  41. package/build/within.d.ts +34 -44
  42. package/build/within.js +16 -7
  43. package/build/within.js.map +1 -1
  44. package/package.json +1 -1
  45. package/typings/index.flow.js +107 -95
  46. package/build/helpers/byDisplayValue.d.ts +0 -6
  47. package/build/helpers/byDisplayValue.js.map +0 -1
  48. package/build/helpers/byPlaceholderText.d.ts +0 -6
  49. package/build/helpers/byPlaceholderText.js.map +0 -1
  50. package/build/helpers/byTestId.d.ts +0 -6
  51. package/build/helpers/byTestId.js.map +0 -1
  52. package/build/helpers/byText.d.ts +0 -10
  53. package/build/helpers/byText.js.map +0 -1
  54. package/build/helpers/findByAPI.d.ts +0 -17
  55. package/build/helpers/findByAPI.js +0 -33
  56. package/build/helpers/findByAPI.js.map +0 -1
  57. package/build/helpers/getByAPI.d.ts +0 -31
  58. package/build/helpers/getByAPI.js +0 -83
  59. package/build/helpers/getByAPI.js.map +0 -1
  60. package/build/helpers/makeQueries.d.ts +0 -20
  61. package/build/helpers/makeQueries.js.map +0 -1
  62. package/build/helpers/queryByAPI.d.ts +0 -39
  63. package/build/helpers/queryByAPI.js +0 -87
  64. package/build/helpers/queryByAPI.js.map +0 -1
package/README.md CHANGED
@@ -102,22 +102,20 @@ flow-typed install react-test-renderer
102
102
  ## Example
103
103
 
104
104
  ```jsx
105
- import { render, fireEvent } from '@testing-library/react-native';
105
+ import { render, screen, fireEvent } from '@testing-library/react-native';
106
106
  import { QuestionsBoard } from '../QuestionsBoard';
107
107
 
108
108
  test('form submits two answers', () => {
109
109
  const allQuestions = ['q1', 'q2'];
110
110
  const mockFn = jest.fn();
111
111
 
112
- const { getAllByLabelText, getByText } = render(
113
- <QuestionsBoard questions={allQuestions} onSubmit={mockFn} />
114
- );
112
+ render(<QuestionsBoard questions={allQuestions} onSubmit={mockFn} />);
115
113
 
116
- const answerInputs = getAllByLabelText('answer input');
114
+ const answerInputs = screen.getAllByLabelText('answer input');
117
115
 
118
116
  fireEvent.changeText(answerInputs[0], 'a1');
119
117
  fireEvent.changeText(answerInputs[1], 'a2');
120
- fireEvent.press(getByText('Submit'));
118
+ fireEvent.press(screen.getByText('Submit'));
121
119
 
122
120
  expect(mockFn).toBeCalledWith({
123
121
  '1': { q: 'q1', a: 'a1' },
package/build/cleanup.js CHANGED
@@ -5,9 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.addToCleanupQueue = addToCleanupQueue;
7
7
  exports.default = cleanup;
8
+
9
+ var _screen = require("./screen");
10
+
8
11
  let cleanupQueue = new Set();
9
12
 
10
13
  function cleanup() {
14
+ (0, _screen.clearRenderResult)();
11
15
  cleanupQueue.forEach(fn => fn());
12
16
  cleanupQueue.clear();
13
17
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cleanup.ts"],"names":["cleanupQueue","Set","cleanup","forEach","fn","clear","addToCleanupQueue","add"],"mappings":";;;;;;;AAGA,IAAIA,YAAY,GAAG,IAAIC,GAAJ,EAAnB;;AAEe,SAASC,OAAT,GAAmB;AAChCF,EAAAA,YAAY,CAACG,OAAb,CAAsBC,EAAD,IAAQA,EAAE,EAA/B;AACAJ,EAAAA,YAAY,CAACK,KAAb;AACD;;AAEM,SAASC,iBAAT,CAA2BF,EAA3B,EAAgD;AACrDJ,EAAAA,YAAY,CAACO,GAAb,CAAiBH,EAAjB;AACD","sourcesContent":["import * as React from 'react';\n\ntype CleanUpFunction = (nextElement?: React.ReactElement<any>) => void;\nlet cleanupQueue = new Set<CleanUpFunction>();\n\nexport default function cleanup() {\n cleanupQueue.forEach((fn) => fn());\n cleanupQueue.clear();\n}\n\nexport function addToCleanupQueue(fn: CleanUpFunction) {\n cleanupQueue.add(fn);\n}\n"],"file":"cleanup.js"}
1
+ {"version":3,"sources":["../src/cleanup.ts"],"names":["cleanupQueue","Set","cleanup","forEach","fn","clear","addToCleanupQueue","add"],"mappings":";;;;;;;;AACA;;AAGA,IAAIA,YAAY,GAAG,IAAIC,GAAJ,EAAnB;;AAEe,SAASC,OAAT,GAAmB;AAChC;AACAF,EAAAA,YAAY,CAACG,OAAb,CAAsBC,EAAD,IAAQA,EAAE,EAA/B;AACAJ,EAAAA,YAAY,CAACK,KAAb;AACD;;AAEM,SAASC,iBAAT,CAA2BF,EAA3B,EAAgD;AACrDJ,EAAAA,YAAY,CAACO,GAAb,CAAiBH,EAAjB;AACD","sourcesContent":["import * as React from 'react';\nimport { clearRenderResult } from './screen';\n\ntype CleanUpFunction = (nextElement?: React.ReactElement<any>) => void;\nlet cleanupQueue = new Set<CleanUpFunction>();\n\nexport default function cleanup() {\n clearRenderResult();\n cleanupQueue.forEach((fn) => fn());\n cleanupQueue.clear();\n}\n\nexport function addToCleanupQueue(fn: CleanUpFunction) {\n cleanupQueue.add(fn);\n}\n"],"file":"cleanup.js"}
@@ -73,140 +73,144 @@ declare type A11yValue = {
73
73
  text?: string,
74
74
  };
75
75
 
76
- interface GetByAPI {
76
+ type WaitForOptions = {
77
+ timeout?: number,
78
+ interval?: number,
79
+ onTimeout?: (error: mixed) => Error,
80
+ };
81
+ type WaitForFunction = <T = any>(
82
+ expectation: () => T,
83
+ options?: WaitForOptions
84
+ ) => Promise<T>;
85
+
86
+ interface ByTextQueries {
77
87
  getByText: (text: TextMatch, options?: TextMatchOptions) => ReactTestInstance;
78
- getByPlaceholderText: (
79
- placeholder: TextMatch,
80
- options?: TextMatchOptions
81
- ) => ReactTestInstance;
82
- getByDisplayValue: (
83
- value: TextMatch,
84
- options?: TextMatchOptions
85
- ) => ReactTestInstance;
86
- getByTestId: (
87
- testID: TextMatch,
88
- options?: TextMatchOptions
89
- ) => ReactTestInstance;
90
- getAllByTestId: (
91
- testID: TextMatch,
92
- options?: TextMatchOptions
93
- ) => Array<ReactTestInstance>;
94
88
  getAllByText: (
95
89
  text: TextMatch,
96
90
  options?: TextMatchOptions
97
91
  ) => Array<ReactTestInstance>;
98
- getAllByPlaceholderText: (
99
- placeholder: TextMatch,
100
- options?: TextMatchOptions
101
- ) => Array<ReactTestInstance>;
102
- getAllByDisplayValue: (
103
- value: TextMatch,
104
- options?: TextMatchOptions
105
- ) => Array<ReactTestInstance>;
106
-
107
- // Unsafe aliases
108
- UNSAFE_getByType: <P>(type: React.ComponentType<P>) => ReactTestInstance;
109
- UNSAFE_getAllByType: <P>(
110
- type: React.ComponentType<P>
111
- ) => Array<ReactTestInstance>;
112
- UNSAFE_getByProps: (props: { [string]: any }) => ReactTestInstance;
113
- UNSAFE_getAllByProps: (props: { [string]: any }) => Array<ReactTestInstance>;
114
- }
115
-
116
- interface QueryByAPI {
117
92
  queryByText: (
118
93
  name: TextMatch,
119
94
  options?: TextMatchOptions
120
95
  ) => ReactTestInstance | null;
121
- queryByPlaceholderText: (
122
- placeholder: TextMatch,
123
- options?: TextMatchOptions
124
- ) => ReactTestInstance | null;
125
- queryByDisplayValue: (
126
- value: TextMatch,
127
- options?: TextMatchOptions
128
- ) => ReactTestInstance | null;
129
- queryByTestId: (testID: TextMatch) => ReactTestInstance | null;
130
- queryAllByTestId: (testID: TextMatch) => Array<ReactTestInstance> | [];
131
96
  queryAllByText: (
132
97
  text: TextMatch,
133
98
  options?: TextMatchOptions
134
99
  ) => Array<ReactTestInstance> | [];
135
- queryAllByPlaceholderText: (
136
- placeholder: TextMatch,
137
- options?: TextMatchOptions
138
- ) => Array<ReactTestInstance> | [];
139
- queryAllByDisplayValue: (
140
- value: TextMatch,
141
- options?: TextMatchOptions
142
- ) => Array<ReactTestInstance> | [];
143
-
144
- // Unsafe aliases
145
- UNSAFE_queryByType: <P>(
146
- type: React.ComponentType<P>
147
- ) => ReactTestInstance | null;
148
- UNSAFE_queryAllByType: <P>(
149
- type: React.ComponentType<P>
150
- ) => Array<ReactTestInstance> | [];
151
- UNSAFE_queryByProps: (props: { [string]: any }) => ReactTestInstance | null;
152
- UNSAFE_queryAllByProps: (props: { [string]: any }) =>
153
- | Array<ReactTestInstance>
154
- | [];
155
- }
156
-
157
- type WaitForOptions = {
158
- timeout?: number,
159
- interval?: number,
160
- onTimeout?: (error: mixed) => Error,
161
- };
162
- type WaitForFunction = <T = any>(
163
- expectation: () => T,
164
- options?: WaitForOptions
165
- ) => Promise<T>;
166
-
167
- interface FindByAPI {
168
100
  findByText: (
169
101
  text: TextMatch,
170
102
  queryOptions?: TextMatchOptions,
171
103
  waitForOptions?: WaitForOptions
172
104
  ) => FindReturn;
173
- findByPlaceholderText: (
174
- placeholder: TextMatch,
175
- queryOptions?: TextMatchOptions,
176
- waitForOptions?: WaitForOptions
177
- ) => FindReturn;
178
- findByDisplayValue: (
179
- value: TextMatch,
105
+ findAllByText: (
106
+ text: TextMatch,
180
107
  queryOptions?: TextMatchOptions,
181
108
  waitForOptions?: WaitForOptions
182
- ) => FindReturn;
109
+ ) => FindAllReturn;
110
+ }
111
+
112
+ interface ByTestIdQueries {
113
+ getByTestId: (
114
+ testID: TextMatch,
115
+ options?: TextMatchOptions
116
+ ) => ReactTestInstance;
117
+ getAllByTestId: (
118
+ testID: TextMatch,
119
+ options?: TextMatchOptions
120
+ ) => Array<ReactTestInstance>;
121
+ queryByTestId: (testID: TextMatch) => ReactTestInstance | null;
122
+ queryAllByTestId: (testID: TextMatch) => Array<ReactTestInstance> | [];
183
123
  findByTestId: (
184
124
  testID: TextMatch,
185
125
  queryOptions?: TextMatchOptions,
186
126
  waitForOptions?: WaitForOptions
187
127
  ) => FindReturn;
188
- findAllByText: (
189
- text: TextMatch,
128
+ findAllByTestId: (
129
+ testID: TextMatch,
190
130
  queryOptions?: TextMatchOptions,
191
131
  waitForOptions?: WaitForOptions
192
132
  ) => FindAllReturn;
193
- findAllByPlaceholderText: (
194
- placeholder: TextMatch,
133
+ }
134
+
135
+ interface ByDisplayValueQueries {
136
+ getByDisplayValue: (
137
+ value: TextMatch,
138
+ options?: TextMatchOptions
139
+ ) => ReactTestInstance;
140
+ getAllByDisplayValue: (
141
+ value: TextMatch,
142
+ options?: TextMatchOptions
143
+ ) => Array<ReactTestInstance>;
144
+ queryByDisplayValue: (
145
+ value: TextMatch,
146
+ options?: TextMatchOptions
147
+ ) => ReactTestInstance | null;
148
+ queryAllByDisplayValue: (
149
+ value: TextMatch,
150
+ options?: TextMatchOptions
151
+ ) => Array<ReactTestInstance> | [];
152
+ findByDisplayValue: (
153
+ value: TextMatch,
195
154
  queryOptions?: TextMatchOptions,
196
155
  waitForOptions?: WaitForOptions
197
- ) => FindAllReturn;
156
+ ) => FindReturn;
198
157
  findAllByDisplayValue: (
199
158
  value: TextMatch,
200
159
  queryOptions?: TextMatchOptions,
201
160
  waitForOptions?: WaitForOptions
202
161
  ) => FindAllReturn;
203
- findAllByTestId: (
204
- testID: TextMatch,
162
+ }
163
+
164
+ interface ByPlaceholderTextQueries {
165
+ getByPlaceholderText: (
166
+ placeholder: TextMatch,
167
+ options?: TextMatchOptions
168
+ ) => ReactTestInstance;
169
+ getAllByPlaceholderText: (
170
+ placeholder: TextMatch,
171
+ options?: TextMatchOptions
172
+ ) => Array<ReactTestInstance>;
173
+ queryByPlaceholderText: (
174
+ placeholder: TextMatch,
175
+ options?: TextMatchOptions
176
+ ) => ReactTestInstance | null;
177
+ queryAllByPlaceholderText: (
178
+ placeholder: TextMatch,
179
+ options?: TextMatchOptions
180
+ ) => Array<ReactTestInstance> | [];
181
+ findByPlaceholderText: (
182
+ placeholder: TextMatch,
183
+ queryOptions?: TextMatchOptions,
184
+ waitForOptions?: WaitForOptions
185
+ ) => FindReturn;
186
+ findAllByPlaceholderText: (
187
+ placeholder: TextMatch,
205
188
  queryOptions?: TextMatchOptions,
206
189
  waitForOptions?: WaitForOptions
207
190
  ) => FindAllReturn;
208
191
  }
209
192
 
193
+ interface UnsafeByTypeQueries {
194
+ UNSAFE_getByType: <P>(type: React.ComponentType<P>) => ReactTestInstance;
195
+ UNSAFE_getAllByType: <P>(
196
+ type: React.ComponentType<P>
197
+ ) => Array<ReactTestInstance>;
198
+ UNSAFE_queryByType: <P>(
199
+ type: React.ComponentType<P>
200
+ ) => ReactTestInstance | null;
201
+ UNSAFE_queryAllByType: <P>(
202
+ type: React.ComponentType<P>
203
+ ) => Array<ReactTestInstance> | [];
204
+ }
205
+
206
+ interface UnsafeByPropsQueries {
207
+ UNSAFE_getByProps: (props: { [string]: any }) => ReactTestInstance;
208
+ UNSAFE_getAllByProps: (props: { [string]: any }) => Array<ReactTestInstance>;
209
+ UNSAFE_queryByProps: (props: { [string]: any }) => ReactTestInstance | null;
210
+ UNSAFE_queryAllByProps: (props: { [string]: any }) =>
211
+ | Array<ReactTestInstance>
212
+ | [];
213
+ }
210
214
  interface A11yAPI {
211
215
  // Label
212
216
  getByLabelText: (matcher: TextMatch) => GetReturn;
@@ -313,7 +317,13 @@ type Debug = {
313
317
  shallow: (message?: string) => void,
314
318
  };
315
319
 
316
- type Queries = GetByAPI & QueryByAPI & FindByAPI & A11yAPI;
320
+ type Queries = ByTextQueries &
321
+ ByTestIdQueries &
322
+ ByDisplayValueQueries &
323
+ ByPlaceholderTextQueries &
324
+ UnsafeByTypeQueries &
325
+ UnsafeByPropsQueries &
326
+ A11yAPI;
317
327
 
318
328
  interface RenderAPI extends Queries {
319
329
  update(nextElement: React.Element<any>): void;
@@ -353,6 +363,8 @@ declare module '@testing-library/react-native' {
353
363
  options?: RenderOptions
354
364
  ) => RenderAPI;
355
365
 
366
+ declare export var screen: RenderAPI;
367
+
356
368
  declare export var cleanup: () => void;
357
369
  declare export var fireEvent: FireEventAPI;
358
370
 
package/build/pure.d.ts CHANGED
@@ -1,12 +1,15 @@
1
1
  import act from './act';
2
2
  import cleanup from './cleanup';
3
3
  import fireEvent from './fireEvent';
4
- import render from './render';
4
+ import render, { RenderResult } from './render';
5
5
  import waitFor from './waitFor';
6
6
  import waitForElementToBeRemoved from './waitForElementToBeRemoved';
7
7
  import { within, getQueriesForElement } from './within';
8
8
  import { getDefaultNormalizer } from './matches';
9
9
  import { renderHook } from './renderHook';
10
+ import { screen } from './screen';
11
+ export type { RenderResult };
12
+ export declare type RenderAPI = RenderResult;
10
13
  export { act };
11
14
  export { cleanup };
12
15
  export { fireEvent };
@@ -16,3 +19,4 @@ export { waitForElementToBeRemoved };
16
19
  export { within, getQueriesForElement };
17
20
  export { getDefaultNormalizer };
18
21
  export { renderHook };
22
+ export { screen };
package/build/pure.js CHANGED
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "renderHook", {
45
45
  return _renderHook.renderHook;
46
46
  }
47
47
  });
48
+ Object.defineProperty(exports, "screen", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _screen.screen;
52
+ }
53
+ });
48
54
  Object.defineProperty(exports, "waitFor", {
49
55
  enumerable: true,
50
56
  get: function () {
@@ -82,5 +88,7 @@ var _matches = require("./matches");
82
88
 
83
89
  var _renderHook = require("./renderHook");
84
90
 
91
+ var _screen = require("./screen");
92
+
85
93
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
86
94
  //# sourceMappingURL=pure.js.map
package/build/pure.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/pure.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import act from './act';\nimport cleanup from './cleanup';\nimport fireEvent from './fireEvent';\nimport render from './render';\nimport waitFor from './waitFor';\nimport waitForElementToBeRemoved from './waitForElementToBeRemoved';\nimport { within, getQueriesForElement } from './within';\nimport { getDefaultNormalizer } from './matches';\nimport { renderHook } from './renderHook';\n\nexport { act };\nexport { cleanup };\nexport { fireEvent };\nexport { render };\nexport { waitFor };\nexport { waitForElementToBeRemoved };\nexport { within, getQueriesForElement };\nexport { getDefaultNormalizer };\nexport { renderHook };\n"],"file":"pure.js"}
1
+ {"version":3,"sources":["../src/pure.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import act from './act';\nimport cleanup from './cleanup';\nimport fireEvent from './fireEvent';\nimport render, { RenderResult } from './render';\nimport waitFor from './waitFor';\nimport waitForElementToBeRemoved from './waitForElementToBeRemoved';\nimport { within, getQueriesForElement } from './within';\nimport { getDefaultNormalizer } from './matches';\nimport { renderHook } from './renderHook';\nimport { screen } from './screen';\n\nexport type { RenderResult };\nexport type RenderAPI = RenderResult;\n\nexport { act };\nexport { cleanup };\nexport { fireEvent };\nexport { render };\nexport { waitFor };\nexport { waitForElementToBeRemoved };\nexport { within, getQueriesForElement };\nexport { getDefaultNormalizer };\nexport { renderHook };\nexport { screen };\n"],"file":"pure.js"}
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/a11yAPI.ts"],"names":["matchStringValue","prop","matcher","Boolean","match","matchArrayValue","length","includes","some","e","matchObject","Object","keys","key","a11yAPI","instance","getBy","getAllBy","queryBy","queryAllBy","findBy","findAllBy"],"mappings":"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","sourcesContent":["import type { ReactTestInstance } from 'react-test-renderer';\nimport type { AccessibilityRole, AccessibilityState } from 'react-native';\nimport type { WaitForOptions } from '../waitFor';\nimport type { TextMatch } from '../matches';\nimport makeA11yQuery from './makeA11yQuery';\n\ntype AccessibilityStateKey = keyof AccessibilityState;\ntype A11yValue = {\n min?: number;\n max?: number;\n now?: number;\n text?: string;\n};\n\ntype GetReturn = ReactTestInstance;\ntype GetAllReturn = Array<ReactTestInstance>;\ntype QueryReturn = ReactTestInstance | null;\ntype QueryAllReturn = Array<ReactTestInstance>;\ntype FindReturn = Promise<GetReturn>;\ntype FindAllReturn = Promise<GetAllReturn>;\n\nexport type A11yAPI = {\n // Label\n getByLabelText: (label: TextMatch) => GetReturn;\n getAllByLabelText: (label: TextMatch) => GetAllReturn;\n queryByLabelText: (label: TextMatch) => QueryReturn;\n queryAllByLabelText: (label: TextMatch) => QueryAllReturn;\n findByLabelText: (\n label: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByLabelText: (\n label: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // Hint\n getByA11yHint: (a11yHint: TextMatch) => GetReturn;\n getByHintText: (a11yHint: TextMatch) => GetReturn;\n getAllByA11yHint: (a11yHint: TextMatch) => GetAllReturn;\n getAllByHintText: (a11yHint: TextMatch) => GetAllReturn;\n queryByA11yHint: (a11yHint: TextMatch) => QueryReturn;\n queryByHintText: (a11yHint: TextMatch) => QueryReturn;\n queryAllByA11yHint: (a11yHint: TextMatch) => QueryAllReturn;\n queryAllByHintText: (a11yHint: TextMatch) => QueryAllReturn;\n findByA11yHint: (\n a11yHint: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findByHintText: (\n a11yHint: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByA11yHint: (\n a11yHint: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n findAllByHintText: (\n a11yHint: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // Role\n getByRole: (role: AccessibilityRole | RegExp) => GetReturn;\n getAllByRole: (role: AccessibilityRole | RegExp) => GetAllReturn;\n queryByRole: (role: AccessibilityRole | RegExp) => QueryReturn;\n queryAllByRole: (role: AccessibilityRole | RegExp) => QueryAllReturn;\n findByRole: (\n role: AccessibilityRole,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByRole: (\n role: AccessibilityRole,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // States\n getByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey | Array<AccessibilityStateKey>\n ) => GetReturn;\n getAllByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey | Array<AccessibilityStateKey>\n ) => GetAllReturn;\n queryByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey | Array<AccessibilityStateKey>\n ) => QueryReturn;\n queryAllByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey | Array<AccessibilityStateKey>\n ) => QueryAllReturn;\n findByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // State\n getByA11yState: (accessibilityState: AccessibilityState) => GetReturn;\n getAllByA11yState: (accessibilityState: AccessibilityState) => GetAllReturn;\n queryByA11yState: (accessibilityState: AccessibilityState) => QueryReturn;\n queryAllByA11yState: (\n accessibilityState: AccessibilityState\n ) => QueryAllReturn;\n findByA11yState: (\n accessibilityState: AccessibilityState,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByA11yState: (\n accessibilityState: AccessibilityState,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // Value\n getByA11yValue: (a11yValue: A11yValue) => GetReturn;\n getAllByA11yValue: (a11yValue: A11yValue) => GetAllReturn;\n queryByA11yValue: (a11yValue: A11yValue) => QueryReturn;\n queryAllByA11yValue: (a11yValue: A11yValue) => QueryAllReturn;\n findByA11yValue: (\n a11yValue: A11yValue,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByA11yValue: (\n a11yValue: A11yValue,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n};\n\nexport function matchStringValue(\n prop: string | undefined,\n matcher: TextMatch\n): boolean {\n if (!prop) {\n return false;\n }\n\n if (typeof matcher === 'string') {\n return prop === matcher;\n }\n\n return Boolean(prop.match(matcher));\n}\n\nexport function matchArrayValue(\n prop: Array<string> | undefined,\n matcher: string | Array<string>\n): boolean {\n if (!prop || matcher.length === 0) {\n return false;\n }\n\n if (typeof matcher === 'string') {\n return prop.includes(matcher);\n }\n\n return !matcher.some((e) => !prop.includes(e));\n}\n\nexport function matchObject<T extends Record<string, unknown>>(\n prop: T | undefined,\n matcher: T\n): boolean {\n return prop\n ? Object.keys(matcher).length !== 0 &&\n Object.keys(prop).length !== 0 &&\n !Object.keys(matcher).some((key) => prop[key] !== matcher[key])\n : false;\n}\n\nexport const a11yAPI = (instance: ReactTestInstance): A11yAPI =>\n ({\n ...makeA11yQuery(\n 'accessibilityLabel',\n {\n getBy: ['getByLabelText'],\n getAllBy: ['getAllByLabelText'],\n queryBy: ['queryByLabelText'],\n queryAllBy: ['queryAllByLabelText'],\n findBy: ['findByLabelText'],\n findAllBy: ['findAllByLabelText'],\n },\n matchStringValue\n )(instance),\n ...makeA11yQuery(\n 'accessibilityHint',\n {\n getBy: ['getByA11yHint', 'getByAccessibilityHint', 'getByHintText'],\n getAllBy: [\n 'getAllByA11yHint',\n 'getAllByAccessibilityHint',\n 'getAllByHintText',\n ],\n queryBy: [\n 'queryByA11yHint',\n 'queryByAccessibilityHint',\n 'queryByHintText',\n ],\n queryAllBy: [\n 'queryAllByA11yHint',\n 'queryAllByAccessibilityHint',\n 'queryAllByHintText',\n ],\n findBy: ['findByA11yHint', 'findByAccessibilityHint', 'findByHintText'],\n findAllBy: [\n 'findAllByA11yHint',\n 'findAllByAccessibilityHint',\n 'findAllByHintText',\n ],\n },\n matchStringValue\n )(instance),\n ...makeA11yQuery(\n 'accessibilityRole',\n {\n getBy: ['getByRole'],\n getAllBy: ['getAllByRole'],\n queryBy: ['queryByRole'],\n queryAllBy: ['queryAllByRole'],\n findBy: ['findByRole'],\n findAllBy: ['findAllByRole'],\n },\n matchStringValue\n )(instance),\n ...makeA11yQuery(\n 'accessibilityStates',\n {\n getBy: ['getByA11yStates', 'getByAccessibilityStates'],\n getAllBy: ['getAllByA11yStates', 'getAllByAccessibilityStates'],\n queryBy: ['queryByA11yStates', 'queryByAccessibilityStates'],\n queryAllBy: ['queryAllByA11yStates', 'queryAllByAccessibilityStates'],\n findBy: ['findByA11yStates', 'findByAccessibilityStates'],\n findAllBy: ['findAllByA11yStates', 'findAllByAccessibilityStates'],\n },\n matchArrayValue\n )(instance),\n ...makeA11yQuery(\n 'accessibilityState',\n {\n getBy: ['getByA11yState', 'getByAccessibilityState'],\n getAllBy: ['getAllByA11yState', 'getAllByAccessibilityState'],\n queryBy: ['queryByA11yState', 'queryByAccessibilityState'],\n queryAllBy: ['queryAllByA11yState', 'queryAllByAccessibilityState'],\n findBy: ['findByA11yState', 'findByAccessibilityState'],\n findAllBy: ['findAllByA11yState', 'findAllByAccessibilityState'],\n },\n matchObject\n )(instance),\n ...makeA11yQuery(\n 'accessibilityValue',\n {\n getBy: ['getByA11yValue', 'getByAccessibilityValue'],\n getAllBy: ['getAllByA11yValue', 'getAllByAccessibilityValue'],\n queryBy: ['queryByA11yValue', 'queryByAccessibilityValue'],\n queryAllBy: ['queryAllByA11yValue', 'queryAllByAccessibilityValue'],\n findBy: ['findByA11yValue', 'findByAccessibilityValue'],\n findAllBy: ['findAllByA11yValue', 'findAllByAccessibilityValue'],\n },\n matchObject\n )(instance),\n } as any);\n"],"file":"a11yAPI.js"}
1
+ {"version":3,"sources":["../../src/queries/a11yAPI.ts"],"names":["matchStringValue","prop","matcher","Boolean","match","matchArrayValue","length","includes","some","e","matchObject","Object","keys","key","a11yAPI","instance","getBy","getAllBy","queryBy","queryAllBy","findBy","findAllBy"],"mappings":"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","sourcesContent":["import type { ReactTestInstance } from 'react-test-renderer';\nimport type { AccessibilityRole, AccessibilityState } from 'react-native';\nimport type { WaitForOptions } from '../waitFor';\nimport type { TextMatch } from '../matches';\nimport makeA11yQuery from './makeA11yQuery';\n\ntype AccessibilityStateKey = keyof AccessibilityState;\ntype A11yValue = {\n min?: number;\n max?: number;\n now?: number;\n text?: string;\n};\n\ntype GetReturn = ReactTestInstance;\ntype GetAllReturn = Array<ReactTestInstance>;\ntype QueryReturn = ReactTestInstance | null;\ntype QueryAllReturn = Array<ReactTestInstance>;\ntype FindReturn = Promise<GetReturn>;\ntype FindAllReturn = Promise<GetAllReturn>;\n\nexport type A11yAPI = {\n // Label\n getByLabelText: (label: TextMatch) => GetReturn;\n getAllByLabelText: (label: TextMatch) => GetAllReturn;\n queryByLabelText: (label: TextMatch) => QueryReturn;\n queryAllByLabelText: (label: TextMatch) => QueryAllReturn;\n findByLabelText: (\n label: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByLabelText: (\n label: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // Hint\n getByA11yHint: (a11yHint: TextMatch) => GetReturn;\n getByHintText: (a11yHint: TextMatch) => GetReturn;\n getAllByA11yHint: (a11yHint: TextMatch) => GetAllReturn;\n getAllByHintText: (a11yHint: TextMatch) => GetAllReturn;\n queryByA11yHint: (a11yHint: TextMatch) => QueryReturn;\n queryByHintText: (a11yHint: TextMatch) => QueryReturn;\n queryAllByA11yHint: (a11yHint: TextMatch) => QueryAllReturn;\n queryAllByHintText: (a11yHint: TextMatch) => QueryAllReturn;\n findByA11yHint: (\n a11yHint: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findByHintText: (\n a11yHint: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByA11yHint: (\n a11yHint: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n findAllByHintText: (\n a11yHint: TextMatch,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // Role\n getByRole: (role: AccessibilityRole | RegExp) => GetReturn;\n getAllByRole: (role: AccessibilityRole | RegExp) => GetAllReturn;\n queryByRole: (role: AccessibilityRole | RegExp) => QueryReturn;\n queryAllByRole: (role: AccessibilityRole | RegExp) => QueryAllReturn;\n findByRole: (\n role: AccessibilityRole,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByRole: (\n role: AccessibilityRole,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // States\n getByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey | Array<AccessibilityStateKey>\n ) => GetReturn;\n getAllByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey | Array<AccessibilityStateKey>\n ) => GetAllReturn;\n queryByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey | Array<AccessibilityStateKey>\n ) => QueryReturn;\n queryAllByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey | Array<AccessibilityStateKey>\n ) => QueryAllReturn;\n findByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByA11yStates: (\n accessibilityStateKey: AccessibilityStateKey,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // State\n getByA11yState: (accessibilityState: AccessibilityState) => GetReturn;\n getAllByA11yState: (accessibilityState: AccessibilityState) => GetAllReturn;\n queryByA11yState: (accessibilityState: AccessibilityState) => QueryReturn;\n queryAllByA11yState: (\n accessibilityState: AccessibilityState\n ) => QueryAllReturn;\n findByA11yState: (\n accessibilityState: AccessibilityState,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByA11yState: (\n accessibilityState: AccessibilityState,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n\n // Value\n getByA11yValue: (a11yValue: A11yValue) => GetReturn;\n getAllByA11yValue: (a11yValue: A11yValue) => GetAllReturn;\n queryByA11yValue: (a11yValue: A11yValue) => QueryReturn;\n queryAllByA11yValue: (a11yValue: A11yValue) => QueryAllReturn;\n findByA11yValue: (\n a11yValue: A11yValue,\n waitForOptions?: WaitForOptions\n ) => FindReturn;\n findAllByA11yValue: (\n a11yValue: A11yValue,\n waitForOptions?: WaitForOptions\n ) => FindAllReturn;\n};\n\nexport function matchStringValue(\n prop: string | undefined,\n matcher: TextMatch\n): boolean {\n if (!prop) {\n return false;\n }\n\n if (typeof matcher === 'string') {\n return prop === matcher;\n }\n\n return Boolean(prop.match(matcher));\n}\n\nexport function matchArrayValue(\n prop: Array<string> | undefined,\n matcher: string | Array<string>\n): boolean {\n if (!prop || matcher.length === 0) {\n return false;\n }\n\n if (typeof matcher === 'string') {\n return prop.includes(matcher);\n }\n\n return !matcher.some((e) => !prop.includes(e));\n}\n\nexport function matchObject<T extends Record<string, unknown>>(\n prop: T | undefined,\n matcher: T\n): boolean {\n return prop\n ? Object.keys(matcher).length !== 0 &&\n Object.keys(prop).length !== 0 &&\n !Object.keys(matcher).some((key) => prop[key] !== matcher[key])\n : false;\n}\n\nexport const a11yAPI = (instance: ReactTestInstance): A11yAPI =>\n ({\n ...makeA11yQuery(\n 'accessibilityLabel',\n {\n getBy: ['getByLabelText'],\n getAllBy: ['getAllByLabelText'],\n queryBy: ['queryByLabelText'],\n queryAllBy: ['queryAllByLabelText'],\n findBy: ['findByLabelText'],\n findAllBy: ['findAllByLabelText'],\n },\n matchStringValue\n )(instance),\n ...makeA11yQuery(\n 'accessibilityHint',\n {\n getBy: ['getByA11yHint', 'getByAccessibilityHint', 'getByHintText'],\n getAllBy: [\n 'getAllByA11yHint',\n 'getAllByAccessibilityHint',\n 'getAllByHintText',\n ],\n queryBy: [\n 'queryByA11yHint',\n 'queryByAccessibilityHint',\n 'queryByHintText',\n ],\n queryAllBy: [\n 'queryAllByA11yHint',\n 'queryAllByAccessibilityHint',\n 'queryAllByHintText',\n ],\n findBy: ['findByA11yHint', 'findByAccessibilityHint', 'findByHintText'],\n findAllBy: [\n 'findAllByA11yHint',\n 'findAllByAccessibilityHint',\n 'findAllByHintText',\n ],\n },\n matchStringValue\n )(instance),\n ...makeA11yQuery(\n 'accessibilityRole',\n {\n getBy: ['getByRole'],\n getAllBy: ['getAllByRole'],\n queryBy: ['queryByRole'],\n queryAllBy: ['queryAllByRole'],\n findBy: ['findByRole'],\n findAllBy: ['findAllByRole'],\n },\n matchStringValue\n )(instance),\n ...makeA11yQuery(\n 'accessibilityStates',\n {\n getBy: ['getByA11yStates', 'getByAccessibilityStates'],\n getAllBy: ['getAllByA11yStates', 'getAllByAccessibilityStates'],\n queryBy: ['queryByA11yStates', 'queryByAccessibilityStates'],\n queryAllBy: ['queryAllByA11yStates', 'queryAllByAccessibilityStates'],\n findBy: ['findByA11yStates', 'findByAccessibilityStates'],\n findAllBy: ['findAllByA11yStates', 'findAllByAccessibilityStates'],\n },\n matchArrayValue\n )(instance),\n ...makeA11yQuery(\n 'accessibilityState',\n {\n getBy: ['getByA11yState', 'getByAccessibilityState'],\n getAllBy: ['getAllByA11yState', 'getAllByAccessibilityState'],\n queryBy: ['queryByA11yState', 'queryByAccessibilityState'],\n queryAllBy: ['queryAllByA11yState', 'queryAllByAccessibilityState'],\n findBy: ['findByA11yState', 'findByAccessibilityState'],\n findAllBy: ['findAllByA11yState', 'findAllByAccessibilityState'],\n },\n matchObject\n )(instance),\n ...makeA11yQuery(\n 'accessibilityValue',\n {\n getBy: ['getByA11yValue', 'getByAccessibilityValue'],\n getAllBy: ['getAllByA11yValue', 'getAllByAccessibilityValue'],\n queryBy: ['queryByA11yValue', 'queryByAccessibilityValue'],\n queryAllBy: ['queryAllByA11yValue', 'queryAllByAccessibilityValue'],\n findBy: ['findByA11yValue', 'findByAccessibilityValue'],\n findAllBy: ['findAllByA11yValue', 'findAllByAccessibilityValue'],\n },\n matchObject\n )(instance),\n } as any);\n"],"file":"a11yAPI.js"}
@@ -0,0 +1,13 @@
1
+ import type { ReactTestInstance } from 'react-test-renderer';
2
+ import { TextMatch } from '../matches';
3
+ import type { FindAllByQuery, FindByQuery, GetAllByQuery, GetByQuery, QueryAllByQuery, QueryByQuery } from './makeQueries';
4
+ import type { TextMatchOptions } from './text';
5
+ export declare type ByDisplayValueQueries = {
6
+ getByDisplayValue: GetByQuery<TextMatch, TextMatchOptions>;
7
+ getAllByDisplayValue: GetAllByQuery<TextMatch, TextMatchOptions>;
8
+ queryByDisplayValue: QueryByQuery<TextMatch, TextMatchOptions>;
9
+ queryAllByDisplayValue: QueryAllByQuery<TextMatch, TextMatchOptions>;
10
+ findByDisplayValue: FindByQuery<TextMatch, TextMatchOptions>;
11
+ findAllByDisplayValue: FindAllByQuery<TextMatch, TextMatchOptions>;
12
+ };
13
+ export declare const bindByDisplayValueQueries: (instance: ReactTestInstance) => ByDisplayValueQueries;
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.queryByDisplayValue = exports.queryAllByDisplayValue = exports.getByDisplayValue = exports.getAllByDisplayValue = exports.findByDisplayValue = exports.findAllByDisplayValue = void 0;
6
+ exports.bindByDisplayValueQueries = void 0;
7
7
 
8
- var _matches = require("../matches");
8
+ var _errors = require("../helpers/errors");
9
9
 
10
- var _makeQueries = require("./makeQueries");
10
+ var _filterNodeByType = require("../helpers/filterNodeByType");
11
11
 
12
- var _filterNodeByType = require("./filterNodeByType");
12
+ var _matches = require("../matches");
13
13
 
14
- var _errors = require("./errors");
14
+ var _makeQueries = require("./makeQueries");
15
15
 
16
16
  const getTextInputNodeByDisplayValue = (node, value, options = {}) => {
17
17
  try {
@@ -34,22 +34,27 @@ const queryAllByDisplayValue = instance => function queryAllByDisplayValueFn(dis
34
34
  return instance.findAll(node => getTextInputNodeByDisplayValue(node, displayValue, queryOptions));
35
35
  };
36
36
 
37
- exports.queryAllByDisplayValue = queryAllByDisplayValue;
38
-
39
37
  const getMultipleError = displayValue => `Found multiple elements with display value: ${String(displayValue)} `;
40
38
 
41
39
  const getMissingError = displayValue => `Unable to find an element with displayValue: ${String(displayValue)}`;
42
40
 
43
41
  const {
44
- getBy: getByDisplayValue,
45
- getAllBy: getAllByDisplayValue,
46
- queryBy: queryByDisplayValue,
47
- findBy: findByDisplayValue,
48
- findAllBy: findAllByDisplayValue
42
+ getBy,
43
+ getAllBy,
44
+ queryBy,
45
+ queryAllBy,
46
+ findBy,
47
+ findAllBy
49
48
  } = (0, _makeQueries.makeQueries)(queryAllByDisplayValue, getMissingError, getMultipleError);
50
- exports.findAllByDisplayValue = findAllByDisplayValue;
51
- exports.findByDisplayValue = findByDisplayValue;
52
- exports.queryByDisplayValue = queryByDisplayValue;
53
- exports.getAllByDisplayValue = getAllByDisplayValue;
54
- exports.getByDisplayValue = getByDisplayValue;
55
- //# sourceMappingURL=byDisplayValue.js.map
49
+
50
+ const bindByDisplayValueQueries = instance => ({
51
+ getByDisplayValue: getBy(instance),
52
+ getAllByDisplayValue: getAllBy(instance),
53
+ queryByDisplayValue: queryBy(instance),
54
+ queryAllByDisplayValue: queryAllBy(instance),
55
+ findByDisplayValue: findBy(instance),
56
+ findAllByDisplayValue: findAllBy(instance)
57
+ });
58
+
59
+ exports.bindByDisplayValueQueries = bindByDisplayValueQueries;
60
+ //# sourceMappingURL=displayValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/displayValue.ts"],"names":["getTextInputNodeByDisplayValue","node","value","options","TextInput","require","exact","normalizer","nodeValue","props","undefined","defaultValue","error","queryAllByDisplayValue","instance","queryAllByDisplayValueFn","displayValue","queryOptions","findAll","getMultipleError","String","getMissingError","getBy","getAllBy","queryBy","queryAllBy","findBy","findAllBy","bindByDisplayValueQueries","getByDisplayValue","getAllByDisplayValue","queryByDisplayValue","findByDisplayValue","findAllByDisplayValue"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AAWA,MAAMA,8BAA8B,GAAG,CACrCC,IADqC,EAErCC,KAFqC,EAGrCC,OAAyB,GAAG,EAHS,KAIlC;AACH,MAAI;AACF,UAAM;AAAEC,MAAAA;AAAF,QAAgBC,OAAO,CAAC,cAAD,CAA7B;;AACA,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAwBJ,OAA9B;AACA,UAAMK,SAAS,GACbP,IAAI,CAACQ,KAAL,CAAWP,KAAX,KAAqBQ,SAArB,GACIT,IAAI,CAACQ,KAAL,CAAWP,KADf,GAEID,IAAI,CAACQ,KAAL,CAAWE,YAHjB;AAIA,WACE,wCAAiBV,IAAjB,EAAuBG,SAAvB,KACA,sBAAQF,KAAR,EAAeM,SAAf,EAA0BD,UAA1B,EAAsCD,KAAtC,CAFF;AAID,GAXD,CAWE,OAAOM,KAAP,EAAc;AACd,UAAM,4CAA+BA,KAA/B,CAAN;AACD;AACF,CAnBD;;AAqBA,MAAMC,sBAAsB,GAC1BC,QAD6B,IAM7B,SAASC,wBAAT,CAAkCC,YAAlC,EAAgDC,YAAhD,EAA8D;AAC5D,SAAOH,QAAQ,CAACI,OAAT,CAAkBjB,IAAD,IACtBD,8BAA8B,CAACC,IAAD,EAAOe,YAAP,EAAqBC,YAArB,CADzB,CAAP;AAGD,CAVH;;AAYA,MAAME,gBAAgB,GAAIH,YAAD,IACtB,+CAA8CI,MAAM,CAACJ,YAAD,CAAe,GADtE;;AAEA,MAAMK,eAAe,GAAIL,YAAD,IACrB,gDAA+CI,MAAM,CAACJ,YAAD,CAAe,EADvE;;AAGA,MAAM;AAAEM,EAAAA,KAAF;AAASC,EAAAA,QAAT;AAAmBC,EAAAA,OAAnB;AAA4BC,EAAAA,UAA5B;AAAwCC,EAAAA,MAAxC;AAAgDC,EAAAA;AAAhD,IAA8D,8BAClEd,sBADkE,EAElEQ,eAFkE,EAGlEF,gBAHkE,CAApE;;AAeO,MAAMS,yBAAyB,GACpCd,QADuC,KAEZ;AAC3Be,EAAAA,iBAAiB,EAAEP,KAAK,CAACR,QAAD,CADG;AAE3BgB,EAAAA,oBAAoB,EAAEP,QAAQ,CAACT,QAAD,CAFH;AAG3BiB,EAAAA,mBAAmB,EAAEP,OAAO,CAACV,QAAD,CAHD;AAI3BD,EAAAA,sBAAsB,EAAEY,UAAU,CAACX,QAAD,CAJP;AAK3BkB,EAAAA,kBAAkB,EAAEN,MAAM,CAACZ,QAAD,CALC;AAM3BmB,EAAAA,qBAAqB,EAAEN,SAAS,CAACb,QAAD;AANL,CAFY,CAAlC","sourcesContent":["import type { ReactTestInstance } from 'react-test-renderer';\nimport { createLibraryNotSupportedError } from '../helpers/errors';\nimport { filterNodeByType } from '../helpers/filterNodeByType';\nimport { matches, TextMatch } from '../matches';\nimport { makeQueries } from './makeQueries';\nimport type {\n FindAllByQuery,\n FindByQuery,\n GetAllByQuery,\n GetByQuery,\n QueryAllByQuery,\n QueryByQuery,\n} from './makeQueries';\nimport type { TextMatchOptions } from './text';\n\nconst getTextInputNodeByDisplayValue = (\n node: ReactTestInstance,\n value: TextMatch,\n options: TextMatchOptions = {}\n) => {\n try {\n const { TextInput } = require('react-native');\n const { exact, normalizer } = options;\n const nodeValue =\n node.props.value !== undefined\n ? node.props.value\n : node.props.defaultValue;\n return (\n filterNodeByType(node, TextInput) &&\n matches(value, nodeValue, normalizer, exact)\n );\n } catch (error) {\n throw createLibraryNotSupportedError(error);\n }\n};\n\nconst queryAllByDisplayValue = (\n instance: ReactTestInstance\n): ((\n displayValue: TextMatch,\n queryOptions?: TextMatchOptions\n) => Array<ReactTestInstance>) =>\n function queryAllByDisplayValueFn(displayValue, queryOptions) {\n return instance.findAll((node) =>\n getTextInputNodeByDisplayValue(node, displayValue, queryOptions)\n );\n };\n\nconst getMultipleError = (displayValue: TextMatch) =>\n `Found multiple elements with display value: ${String(displayValue)} `;\nconst getMissingError = (displayValue: TextMatch) =>\n `Unable to find an element with displayValue: ${String(displayValue)}`;\n\nconst { getBy, getAllBy, queryBy, queryAllBy, findBy, findAllBy } = makeQueries(\n queryAllByDisplayValue,\n getMissingError,\n getMultipleError\n);\n\nexport type ByDisplayValueQueries = {\n getByDisplayValue: GetByQuery<TextMatch, TextMatchOptions>;\n getAllByDisplayValue: GetAllByQuery<TextMatch, TextMatchOptions>;\n queryByDisplayValue: QueryByQuery<TextMatch, TextMatchOptions>;\n queryAllByDisplayValue: QueryAllByQuery<TextMatch, TextMatchOptions>;\n findByDisplayValue: FindByQuery<TextMatch, TextMatchOptions>;\n findAllByDisplayValue: FindAllByQuery<TextMatch, TextMatchOptions>;\n};\n\nexport const bindByDisplayValueQueries = (\n instance: ReactTestInstance\n): ByDisplayValueQueries => ({\n getByDisplayValue: getBy(instance),\n getAllByDisplayValue: getAllBy(instance),\n queryByDisplayValue: queryBy(instance),\n queryAllByDisplayValue: queryAllBy(instance),\n findByDisplayValue: findBy(instance),\n findAllByDisplayValue: findAllBy(instance),\n});\n"],"file":"displayValue.js"}
File without changes
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  var _waitFor = _interopRequireDefault(require("../waitFor"));
9
9
 
10
- var _errors = require("./errors");
10
+ var _errors = require("../helpers/errors");
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/makeA11yQuery.ts"],"names":["isNodeValid","node","type","makeAliases","aliases","query","map","alias","reduce","acc","makeA11yQuery","name","queryNames","matcherFn","instance","getBy","matcher","find","props","error","ErrorWithStack","getAllBy","results","findAll","length","Error","queryBy","queryAllBy","findBy","waitForOptions","findAllBy"],"mappings":"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","sourcesContent":["import type { ReactTestInstance } from 'react-test-renderer';\nimport waitFor from '../waitFor';\nimport type { WaitForOptions } from '../waitFor';\nimport {\n ErrorWithStack,\n prepareErrorMessage,\n createQueryByError,\n} from './errors';\n\nfunction isNodeValid(node: ReactTestInstance) {\n return typeof node.type === 'string';\n}\n\nfunction makeAliases(aliases: Array<string>, query: Function) {\n return aliases\n .map((alias) => ({ [alias]: query }))\n .reduce((acc, query) => ({ ...acc, ...query }), {});\n}\n\ntype QueryNames = {\n getBy: Array<string>;\n getAllBy: Array<string>;\n queryBy: Array<string>;\n queryAllBy: Array<string>;\n findBy: Array<string>;\n findAllBy: Array<string>;\n};\n\nconst makeA11yQuery = <P extends unknown, M extends unknown>(\n name: string,\n queryNames: QueryNames,\n matcherFn: (prop: P, value: M) => boolean\n) => (instance: ReactTestInstance) => {\n const getBy = (matcher: M) => {\n try {\n return instance.find(\n (node) => isNodeValid(node) && matcherFn(node.props[name], matcher)\n );\n } catch (error) {\n throw new ErrorWithStack(\n prepareErrorMessage(error, name, matcher),\n getBy\n );\n }\n };\n\n const getAllBy = (matcher: M) => {\n const results = instance.findAll(\n (node) => isNodeValid(node) && matcherFn(node.props[name], matcher)\n );\n\n if (results.length === 0) {\n throw new ErrorWithStack(\n prepareErrorMessage(new Error('No instances found'), name, matcher),\n getAllBy\n );\n }\n\n return results;\n };\n\n const queryBy = (matcher: M) => {\n try {\n return getBy(matcher);\n } catch (error) {\n return createQueryByError(error, queryBy);\n }\n };\n\n const queryAllBy = (matcher: M) => {\n try {\n return getAllBy(matcher);\n } catch (error) {\n return [];\n }\n };\n\n const findBy = (matcher: M, waitForOptions?: WaitForOptions) => {\n return waitFor(() => getBy(matcher), waitForOptions);\n };\n\n const findAllBy = (matcher: M, waitForOptions?: WaitForOptions) => {\n return waitFor(() => getAllBy(matcher), waitForOptions);\n };\n\n return {\n ...makeAliases(queryNames.getBy, getBy),\n ...makeAliases(queryNames.getAllBy, getAllBy),\n ...makeAliases(queryNames.queryBy, queryBy),\n ...makeAliases(queryNames.queryAllBy, queryAllBy),\n ...makeAliases(queryNames.findBy, findBy),\n ...makeAliases(queryNames.findAllBy, findAllBy),\n };\n};\n\nexport default makeA11yQuery;\n"],"file":"makeA11yQuery.js"}
1
+ {"version":3,"sources":["../../src/queries/makeA11yQuery.ts"],"names":["isNodeValid","node","type","makeAliases","aliases","query","map","alias","reduce","acc","makeA11yQuery","name","queryNames","matcherFn","instance","getBy","matcher","find","props","error","ErrorWithStack","getAllBy","results","findAll","length","Error","queryBy","queryAllBy","findBy","waitForOptions","findAllBy"],"mappings":"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","sourcesContent":["import type { ReactTestInstance } from 'react-test-renderer';\nimport waitFor from '../waitFor';\nimport type { WaitForOptions } from '../waitFor';\nimport {\n ErrorWithStack,\n prepareErrorMessage,\n createQueryByError,\n} from '../helpers/errors';\n\nfunction isNodeValid(node: ReactTestInstance) {\n return typeof node.type === 'string';\n}\n\nfunction makeAliases(aliases: Array<string>, query: Function) {\n return aliases\n .map((alias) => ({ [alias]: query }))\n .reduce((acc, query) => ({ ...acc, ...query }), {});\n}\n\ntype QueryNames = {\n getBy: Array<string>;\n getAllBy: Array<string>;\n queryBy: Array<string>;\n queryAllBy: Array<string>;\n findBy: Array<string>;\n findAllBy: Array<string>;\n};\n\nconst makeA11yQuery = <P extends unknown, M extends unknown>(\n name: string,\n queryNames: QueryNames,\n matcherFn: (prop: P, value: M) => boolean\n) => (instance: ReactTestInstance) => {\n const getBy = (matcher: M) => {\n try {\n return instance.find(\n (node) => isNodeValid(node) && matcherFn(node.props[name], matcher)\n );\n } catch (error) {\n throw new ErrorWithStack(\n prepareErrorMessage(error, name, matcher),\n getBy\n );\n }\n };\n\n const getAllBy = (matcher: M) => {\n const results = instance.findAll(\n (node) => isNodeValid(node) && matcherFn(node.props[name], matcher)\n );\n\n if (results.length === 0) {\n throw new ErrorWithStack(\n prepareErrorMessage(new Error('No instances found'), name, matcher),\n getAllBy\n );\n }\n\n return results;\n };\n\n const queryBy = (matcher: M) => {\n try {\n return getBy(matcher);\n } catch (error) {\n return createQueryByError(error, queryBy);\n }\n };\n\n const queryAllBy = (matcher: M) => {\n try {\n return getAllBy(matcher);\n } catch (error) {\n return [];\n }\n };\n\n const findBy = (matcher: M, waitForOptions?: WaitForOptions) => {\n return waitFor(() => getBy(matcher), waitForOptions);\n };\n\n const findAllBy = (matcher: M, waitForOptions?: WaitForOptions) => {\n return waitFor(() => getAllBy(matcher), waitForOptions);\n };\n\n return {\n ...makeAliases(queryNames.getBy, getBy),\n ...makeAliases(queryNames.getAllBy, getAllBy),\n ...makeAliases(queryNames.queryBy, queryBy),\n ...makeAliases(queryNames.queryAllBy, queryAllBy),\n ...makeAliases(queryNames.findBy, findBy),\n ...makeAliases(queryNames.findAllBy, findAllBy),\n };\n};\n\nexport default makeA11yQuery;\n"],"file":"makeA11yQuery.js"}
@@ -0,0 +1,19 @@
1
+ import type { ReactTestInstance } from 'react-test-renderer';
2
+ import type { WaitForOptions } from '../waitFor';
3
+ export declare type GetByQuery<Predicate, Options> = (predicate: Predicate, options?: Options) => ReactTestInstance;
4
+ export declare type GetAllByQuery<Predicate, Options> = (predicate: Predicate, options?: Options) => ReactTestInstance[];
5
+ export declare type QueryByQuery<Predicate, Options> = (predicate: Predicate, options?: Options) => ReactTestInstance | null;
6
+ export declare type QueryAllByQuery<Predicate, Options> = (predicate: Predicate, options?: Options) => ReactTestInstance[];
7
+ export declare type FindByQuery<Predicate, Options> = (predicate: Predicate, options?: Options & WaitForOptions, waitForOptions?: WaitForOptions) => Promise<ReactTestInstance>;
8
+ export declare type FindAllByQuery<Predicate, Options> = (predicate: Predicate, options?: Options & WaitForOptions, waitForOptions?: WaitForOptions) => Promise<ReactTestInstance[]>;
9
+ declare type UnboundQuery<Query> = (instance: ReactTestInstance) => Query;
10
+ export declare type UnboundQueries<Predicate, Options> = {
11
+ getBy: UnboundQuery<GetByQuery<Predicate, Options>>;
12
+ getAllBy: UnboundQuery<GetAllByQuery<Predicate, Options>>;
13
+ queryBy: UnboundQuery<QueryByQuery<Predicate, Options>>;
14
+ queryAllBy: UnboundQuery<QueryAllByQuery<Predicate, Options>>;
15
+ findBy: UnboundQuery<FindByQuery<Predicate, Options>>;
16
+ findAllBy: UnboundQuery<FindAllByQuery<Predicate, Options>>;
17
+ };
18
+ export declare function makeQueries<Predicate, Options>(queryAllByQuery: UnboundQuery<QueryAllByQuery<Predicate, Options>>, getMissingError: (predicate: Predicate) => string, getMultipleError: (predicate: Predicate) => string): UnboundQueries<Predicate, Options>;
19
+ export {};