From d71a7d8afc56fbf29a5bf3d360d510885bc5ea67 Mon Sep 17 00:00:00 2001 From: MattAgn <32499425+MattAgn@users.noreply.github.com> Date: Wed, 13 Jan 2021 12:28:47 +0100 Subject: [PATCH] chore: restructure ByTestId queries code by predicate type (#608) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: add makeQueries functions * refactor: use new query builders on byTestId * rebase and rearrange to a bit * add fixme * refactor: make single function makeQueries * doc: add TODO to do before end of pr * fix: fix flow issue * parametrize Queries * chore: delete duplicated test Co-authored-by: Michał Pierzchała --- src/__tests__/byTestId.test.js | 173 ++++++++++++++++++++++++++++++++ src/__tests__/findByApi.test.js | 6 -- src/__tests__/getByApi.test.js | 52 ---------- src/__tests__/render.test.js | 30 ------ src/helpers/byTestId.js | 46 +++++++++ src/helpers/findByAPI.js | 23 +---- src/helpers/getByAPI.js | 45 +-------- src/helpers/makeQueries.js | 114 +++++++++++++++++++++ src/helpers/queryByAPI.js | 26 +---- 9 files changed, 336 insertions(+), 179 deletions(-) create mode 100644 src/__tests__/byTestId.test.js delete mode 100644 src/__tests__/getByApi.test.js create mode 100644 src/helpers/byTestId.js create mode 100644 src/helpers/makeQueries.js diff --git a/src/__tests__/byTestId.test.js b/src/__tests__/byTestId.test.js new file mode 100644 index 00000000..ab195dbf --- /dev/null +++ b/src/__tests__/byTestId.test.js @@ -0,0 +1,173 @@ +// @flow +import React from 'react'; +import { View, Text, TextInput, TouchableOpacity, Button } from 'react-native'; +import { render } from '..'; + +const PLACEHOLDER_FRESHNESS = 'Add custom freshness'; +const PLACEHOLDER_CHEF = 'Who inspected freshness?'; +const INPUT_FRESHNESS = 'Custom Freshie'; +const INPUT_CHEF = 'I inspected freshie'; + +class MyButton extends React.Component { + render() { + return ( + + {this.props.children} + + ); + } +} + +class Banana extends React.Component { + state = { + fresh: false, + }; + + componentDidUpdate() { + if (this.props.onUpdate) { + this.props.onUpdate(); + } + } + + componentWillUnmount() { + if (this.props.onUnmount) { + this.props.onUnmount(); + } + } + + changeFresh = () => { + this.setState((state) => ({ + fresh: !state.fresh, + })); + }; + + render() { + const test = 0; + return ( + + Is the banana fresh? + + {this.state.fresh ? 'fresh' : 'not fresh'} + + + + + Change freshness! + + First Text + Second Text + {test} + + ); + } +} + +const MyComponent = () => { + return My Component; +}; + +test('getByTestId returns only native elements', () => { + const { getByTestId, getAllByTestId } = render( + + Text + + +