Commit Graph

42 Commits

Author SHA1 Message Date
Augustin Le Fèvre 3735b0e41f Forward extra data to press event (#828) 2021-10-15 21:02:34 +02:00
Ilya.Stepanov 2ab2645e1d Update index.d.ts (#812)
toJSON function can return a list of ReactTestRendererJSON
2021-09-13 12:55:48 +02:00
Benjamin Reid e9f6d694f4 Debug implicit any error (#697)
* any return time for Debug (implicit any errors)

* Update typings/index.d.ts

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2021-03-03 18:18:48 +01:00
Michał Pierzchała 2b36511090 fix: correct TS typings for debug.shallow (#584) 2020-11-02 18:46:56 +01:00
Jason Cheatham b74b15faf2 fix: add container to TypeScript types (#582)
Update the TS types for the new `container` property that was added to
the output of `render` in #567.
2020-10-28 15:33:23 +01:00
Alvaro Catalina d55ea0b0b4 feat: RegExp support for *ByTestId queries (#535)
* getAllByTestId supports a regex matcher

* update typings

* docs: update

* refactor types

* refactor. remove unnecessary try/catch

* refactor test assertions
2020-09-07 22:39:16 +02:00
Alireza Ghamkhar 6bf86f915f Fix the type bug for queryAllByTestId (#498) 2020-08-11 17:41:02 +02:00
Maciej Jastrzebski 3f88cacbc6 feat: add getQueriesForElement alias to within (#461)
* feat: getQueriesForElement alias implementation & test

* feat: added typescript types and tests

* feat: updated docs
2020-07-30 16:13:15 +02:00
Michał Pierzchała 6d63a4f29e feat(breaking): rename ByPlaceholder to ByPlaceholderText (#455) 2020-07-30 16:13:15 +02:00
Ryan Wessel 61359c70e6 feat: introduce ByLabelText, ByRole and ByHintText a11y aliases (#445)
* feat: Add alias accessibilityLabel queries to assist in migrating from @testing-library/react-native

* feat: Add alias accessibilityHint queries to assist in migrating from @testing-library/react-native

* feat: Add alias accessibilityRole queries to assist in migrating from @testing-library/react-native

* feat: Add to A11yAPI types to include the newly-aliased queries for label, hint, and role

* test: Add tests for newly-aliased label, hint, and role a11y queries

* test: Add newly-alised a11y queries to the index typings test file

* docs: Add query aliases for testing library migrators to Queries documentation

* test: Consolidate aliased query tests into shared tests. FIXME's where there are errors

* test: Update a11yAPI tests to assert referential equality for query aliases

* refactor: apply Prettier formatting to a11yAPI test file

* fix: address typos in CONTRIBUTING.md

* test: Separate referential quality assertion tests for query aliases into their own tests

Co-authored-by: Ryan Wessel <rwessel@dataminr.com>
2020-07-21 15:46:06 +02:00
Kadi Kraman 5ed2b8bcd5 fix: add a @ts-ignore for AccessibilityStates to support types for RN0.62+ (#440) 2020-07-16 15:05:53 +02:00
Maciej Jastrzebski 300d16b822 feature: wait for element to be removed (#376)
* feature: basic implementation

* feature: basic implementation

* feature: added typescript types

* feature: check if element exists initially

* resolve promise with initial elements

* docs: README & API

* use ErrorWithStack helper

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2020-06-10 08:17:01 +02:00
Maciej Jastrzebski 9e50bff6ab chore(breaking): deprecate flushMicrotasksQueue (#340)
* Deprecated flushMicrotasksQueue

* Update website/docs/Migration20.md

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>

* Renamed flushMicrotasksQueueInternal to flushMicroTasks

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2020-05-28 15:06:04 +02:00
Maciej Jastrzebski 40ed26812d chore: reorganize TS test file (#337) 2020-05-28 15:06:04 +02:00
Maciej Jastrzebski 9fc83fec60 Feat(breaking): remove deprecated functions (#334)
* WIP

* More changes

* WIP

* Added throwRemovedFunctionError docsRef

* Fixed tests

* Typescript types cleanup

* Cleanup

* Moving some changes from `prepare-2` branch

* Moving some changes from `prepare-2` branch

* Update src/waitFor.js

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>

* Update website/docs/Migration20.md

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>

* Code review changes

* More code review changes

* Code review changes

* More code review changes

* Added @deprecated messages for TS type defs

* Spelling mistake

* Reformatted index.d.ts

* Removed remaining refs to warnFn

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2020-05-28 15:06:04 +02:00
Maciej Jastrzebski 5e798bc2e3 Feat(breaking): unify wait for element signature with testing library (#327)
* Change argument to options object

* Renamed `waitForElement` to `waitFor`

* Migration guide entry

* Fixed typescript check

* Update src/helpers/a11yAPI.js

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>

* (Nearly) Empty migration doc for ver. 2.0 (#326)

* Added migration docs section

* Added to docosaurus side bar

* Updated README

* Increased async test timeout

* Update website/docs/Migration20.md

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>

* feat(breaking): remove legacy `debug` export (#328)

* Removed global `debug` functions

* Removed global `debug` from docs

* Cleanup

* Added migration section

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2020-05-28 15:06:04 +02:00
Maciej Jastrzebski 043f51d36c feat(breaking): remove legacy debug export (#328)
* Removed global `debug` functions

* Removed global `debug` from docs

* Cleanup

* Added migration section

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2020-05-28 15:06:04 +02:00
Maciej Jastrzebski ab34712133 feat: add findBy* queries (#304)
* Basic async findBy queries

* Refactored findBy queries to be built with makeFindQuery

* findBy queries for A11y selectors

* Custom findByTestId implementation that avoids current getByTestId issues

* Fixed prettier issue

* Updates Queries.md with findBy queries

* Trying to fix test timeout error appearing only on CI

* Code review changes

* Added typescript types & tests

* prettier did reformat some code arround

* Removed export of GetByAPI, QueryByAPI and FindByAPI interfaces in TS

* Reversed prettier run on typings

* Added overlapping pieces with `within` operator

* Small cleanup

* Update website/docs/Queries.md

* Moved async/await tests to the end of test methods

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2020-05-15 09:52:33 +02:00
Maciej Jastrzebski 1809825313 feat: add within operator for returned instance-bound queries (#306)
* Basic within implementation and tests

* Added typescript types & tests

* Removed duplicated import in index.d.ts

* Reversed prettier run on typings

* Fixed package level exports for `within` operator

* Replaced getByTestId queries with getByA11yHint queries in unit tests for `within`

* Added `within` section to API.md

* Updated README.md regarding `within` operator

* Update website/docs/API.md

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2020-05-14 12:51:19 +02:00
Kacper Wiszczuk 9edcd16c72 feat: byA11yValue matcher (#262) 2020-03-18 10:42:20 +01:00
Kacper Wiszczuk 960080d210 imp: Re-alias deprecated matchers and warn (#261)
* imp: Re-alias deprecated matchers

* Prepare for byName deletion
2020-03-18 10:30:41 +01:00
Kacper Wiszczuk 62cda2205b 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>
2020-03-18 10:06:31 +01:00
Alec Larson 4c77f4a7dc feat: add "cleanup" function (#237)
* feat: add "cleanup" function

* docs: add "cleanup" section

* test: "cleanup" function

* don't expose cleanup queue


Co-authored-by: Alec Larson <alec.stanford.larson@gmail.com>
Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2019-12-09 11:41:48 +01:00
Kacper Wiszczuk d216b108b9 fix: correct Flow and TS typings for a11y queries (#205) 2019-07-17 12:10:22 +02:00
Kacper Wiszczuk 31f476bb7c feat: support multiple params in event handlers (#203) 2019-07-16 16:19:59 +02:00
Scotty Waggoner fead652013 feat: add getAllByTestId and queryAllByTestId queries (#198)
* feat: add getAllByTestId and queryAllByTestId queries

* Add test for getAllByTestId and queryAllByTestId

- Filter out intermediate components in getAllByTestId. testIDs may be passed down to child components and appearing multiple times in the render tree. Some React Native components render multiple anyways. <Text> is an example.

* Update TypeScript typings

* Fix flow types

* Update TS typings test
2019-07-03 10:17:32 +02:00
Michał Pierzchała a56501b0fb feat: implement ByDisplayValue queries (#190) 2019-06-10 17:30:27 +02:00
Scotty Waggoner f6f0a7091d feat: Add wrapper option to render (#173)
* Add wrapper option to render

* Update TS types and call updateWithAct only once

* wrapUiIfNeeded -> wrap

* reindent snapshots

* adjustments

* change name
2019-05-28 22:31:48 +02:00
Kacper Wiszczuk f9bc0b263d feat: add a11y queries (#178)
* First implementation of matcher generator

* A11y queries added

* extract prepareErrorMessage

* Add tests

* Make aliases

* Move create queryByError

* Add missing aliases

* simplify valid node check

* add docs

* fix types
2019-05-28 20:47:06 +02:00
Michał Pierzchała 439db6c823 feat: add rerender as an alias for update (#149)
<!-- Please provide enough information so that others can review your pull request. -->
<!-- Keep pull requests small and focused on a single change. -->

### Summary

Users of `react-testing-library` use `rerender` wording instead of `update`. Let's make it easier for them by aliasing it.
See: https://testing-library.com/docs/react-testing-library/api#rerender

### Test plan

Added cases for JS tests and TS typings
2019-04-14 10:09:46 +02:00
Kacper Wiszczuk 11489b0e5e feat: wrap render with act() for better React Hooks support (#122) 2019-02-28 21:53:26 +01:00
Dana Hartweg ee888f1dcd feat: add getByPlaceholder query functionality (#101)
### Summary
There is a helper that exists in `react-testing-library` to query inputs by their `placeholder`. This PR adds that support.

You **could** achieve this by querying for a `placeholder` prop, or querying for react native `TextInput`s manually and then checking their props, but it felt cleaner to have this contained in the testing library itself. It will also allow you to bypass any other instances that may have a `placeholder` prop that aren't `TextInput`s.

If we don't want to expand the surface of the library further, I completely understand that and am fine with this being closed. Just seems like it may be useful and save some time for several scenarios =)

### Test plan
+ Render a `TextInput` with a `placeholder` prop
+ Query the test instance via `getByPlaceholder` for the input
+ Verify the test instance is found
2018-12-22 23:09:28 +01:00
Kacper Wiszczuk 2d999011cc chore: Greenkeeper/@types/react 16.7.11 (#82)
* chore(package): update @types/react to version 16.7.11

* fix: fix typings

* fix: Revert yarn.lock file
2018-12-01 14:20:36 +01:00
Karl Dominick Cinco b410e39622 fix: modify *ByType API TS typings to allow required props (#71) 2018-11-27 19:28:44 +01:00
Michał Pierzchała 909916e84c feat: add debug to render helpers for easier console debugging (#65)
* feat: add debug to render helpers for easier console debugging

* bring back toJSON to docs

* revert unnecessary change

* update TS

* remove cyclic dependency of debug <-> render
2018-11-19 13:51:38 +01:00
Michał Pierzchała fa198c4037 feat: add getByType helper (#64)
* feat: add getByType helper

* add docs
2018-11-19 13:44:51 +01:00
Michał Pierzchała 6fbbe2cdf5 feat: make debug.deep more usable (#40)
<!-- Please provide enough information so that others can review your pull request. -->
<!-- Keep pull requests small and focused on a single change. -->

### Summary

Make `debug.deep` more usable by allowing it to print arbitrary JSON (and actually any) files. This proves handy when we want to debug async component which we want to snapshot after async operations:

```jsx
const { toJSON, getByName } = render(
  <Button onPress={jest.fn} text="Press me" />
);
fireEvent.press(getByName('TouchableOpacity'));
await flushMicrotasksQueue();

debug.deep(toJSON());
```

### Test plan

added one
2018-10-18 09:13:47 +02:00
Michał Pierzchała 05db7bcaac feat: add debug.deep and debug.shallow (#37)
<!-- Please provide enough information so that others can review your pull request. -->
<!-- Keep pull requests small and focused on a single change. -->

### Summary

Adds API proposed by https://github.com/callstack/react-native-testing-library/pull/33#issuecomment-430302079.
Also component output is now highlighted:

<img width="259" alt="screenshot 2018-10-16 at 19 33 25" src="https://user-images.githubusercontent.com/5106466/47035614-c10efb80-d17a-11e8-99ac-00f648880008.png">


### Test plan

Added tests for `debug`.
2018-10-16 21:45:56 +02:00
Michał Pierzchała 03e2c4b0f2 fix: use actual react-native instead of homegrown mocks (#36)
<!-- Please provide enough information so that others can review your pull request. -->
<!-- Keep pull requests small and focused on a single change. -->

### Summary

This actually uncovered some bugs, like lack of `onDoublePress` (lol XD) and enabled us to have better snapshots for deep rendering.

### Test plan

no new tests
2018-10-16 18:51:01 +02:00
Michał Pierzchała 07d3be1c51 feat: add toJSON to render; cleanup shallow (#35)
* feat: add toJSON to render; cleanup shallow

* Remove empty dependencies entry

* revert shallow import

* add docs

* add TS typings
2018-10-16 18:00:54 +02:00
Kacper Wiszczuk 480dd28cbc feat: Add Typescript types to waitForElement (#21)
Fix types for Flow too
2018-10-10 21:45:32 +02:00
Kacper Wiszczuk b6569a6e5d feat Add Typescript types (#18) 2018-10-07 22:32:12 +02:00