Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

react-native-testing-library

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-testing-library - npm Package Compare versions

Comparing version 1.11.1 to 1.12.0

build/cleanup.js

2

build/index.js

@@ -1,1 +0,1 @@

var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"act",{enumerable:true,get:function get(){return _act.default;}});Object.defineProperty(exports,"render",{enumerable:true,get:function get(){return _render.default;}});Object.defineProperty(exports,"shallow",{enumerable:true,get:function get(){return _shallow.default;}});Object.defineProperty(exports,"flushMicrotasksQueue",{enumerable:true,get:function get(){return _flushMicrotasksQueue.default;}});Object.defineProperty(exports,"debug",{enumerable:true,get:function get(){return _debug.default;}});Object.defineProperty(exports,"fireEvent",{enumerable:true,get:function get(){return _fireEvent.default;}});Object.defineProperty(exports,"waitForElement",{enumerable:true,get:function get(){return _waitForElement.default;}});var _act=_interopRequireDefault(require("./act"));var _render=_interopRequireDefault(require("./render"));var _shallow=_interopRequireDefault(require("./shallow"));var _flushMicrotasksQueue=_interopRequireDefault(require("./flushMicrotasksQueue"));var _debug=_interopRequireDefault(require("./debug"));var _fireEvent=_interopRequireDefault(require("./fireEvent"));var _waitForElement=_interopRequireDefault(require("./waitForElement"));
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"act",{enumerable:true,get:function get(){return _act.default;}});Object.defineProperty(exports,"cleanup",{enumerable:true,get:function get(){return _cleanup.default;}});Object.defineProperty(exports,"debug",{enumerable:true,get:function get(){return _debug.default;}});Object.defineProperty(exports,"fireEvent",{enumerable:true,get:function get(){return _fireEvent.default;}});Object.defineProperty(exports,"flushMicrotasksQueue",{enumerable:true,get:function get(){return _flushMicrotasksQueue.default;}});Object.defineProperty(exports,"render",{enumerable:true,get:function get(){return _render.default;}});Object.defineProperty(exports,"shallow",{enumerable:true,get:function get(){return _shallow.default;}});Object.defineProperty(exports,"waitForElement",{enumerable:true,get:function get(){return _waitForElement.default;}});var _act=_interopRequireDefault(require("./act"));var _cleanup=_interopRequireDefault(require("./cleanup"));var _debug=_interopRequireDefault(require("./debug"));var _fireEvent=_interopRequireDefault(require("./fireEvent"));var _flushMicrotasksQueue=_interopRequireDefault(require("./flushMicrotasksQueue"));var _render=_interopRequireDefault(require("./render"));var _shallow=_interopRequireDefault(require("./shallow"));var _waitForElement=_interopRequireDefault(require("./waitForElement"));

@@ -1,1 +0,1 @@

var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(exports,"__esModule",{value:true});exports.default=render;var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var React=_interopRequireWildcard(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _act=_interopRequireDefault(require("./act"));var _getByAPI=require("./helpers/getByAPI");var _queryByAPI=require("./helpers/queryByAPI");var _a11yAPI=_interopRequireDefault(require("./helpers/a11yAPI"));var _debugShallow=_interopRequireDefault(require("./helpers/debugShallow"));var _debugDeep=_interopRequireDefault(require("./helpers/debugDeep"));var _jsxFileName="/Users/thymikee/Projects/callstack/react-native-testing-library/src/render.js";function render(component){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},Wrapper=_ref.wrapper,createNodeMock=_ref.createNodeMock;var wrap=function wrap(innerElement){return Wrapper?React.createElement(Wrapper,{__source:{fileName:_jsxFileName,lineNumber:28}},innerElement):innerElement;};var renderer=renderWithAct(wrap(component),createNodeMock?{createNodeMock:createNodeMock}:undefined);var update=updateWithAct(renderer,wrap);var instance=renderer.root;return(0,_objectSpread2.default)({},(0,_getByAPI.getByAPI)(instance),(0,_queryByAPI.queryByAPI)(instance),(0,_a11yAPI.default)(instance),{update:update,rerender:update,unmount:renderer.unmount,toJSON:renderer.toJSON,debug:debug(instance,renderer)});}function renderWithAct(component,options){var renderer;(0,_act.default)(function(){renderer=_reactTestRenderer.default.create(component,options);});return renderer;}function updateWithAct(renderer,wrap){return function(component){(0,_act.default)(function(){renderer.update(wrap(component));});};}function debug(instance,renderer){function debugImpl(message){return(0,_debugDeep.default)(renderer.toJSON(),message);}debugImpl.shallow=function(message){return(0,_debugShallow.default)(instance,message);};return debugImpl;}
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(exports,"__esModule",{value:true});exports.default=render;var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var React=_interopRequireWildcard(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _act=_interopRequireDefault(require("./act"));var _cleanup=require("./cleanup");var _getByAPI=require("./helpers/getByAPI");var _queryByAPI=require("./helpers/queryByAPI");var _a11yAPI=_interopRequireDefault(require("./helpers/a11yAPI"));var _debugShallow=_interopRequireDefault(require("./helpers/debugShallow"));var _debugDeep=_interopRequireDefault(require("./helpers/debugDeep"));var _jsxFileName="/Users/thymikee/Projects/callstack/react-native-testing-library/src/render.js";function render(component){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},Wrapper=_ref.wrapper,createNodeMock=_ref.createNodeMock;var wrap=function wrap(innerElement){return Wrapper?React.createElement(Wrapper,{__source:{fileName:_jsxFileName,lineNumber:29}},innerElement):innerElement;};var renderer=renderWithAct(wrap(component),createNodeMock?{createNodeMock:createNodeMock}:undefined);var update=updateWithAct(renderer,wrap);var instance=renderer.root;(0,_cleanup.addToCleanupQueue)(renderer.unmount);return(0,_objectSpread2.default)({},(0,_getByAPI.getByAPI)(instance),(0,_queryByAPI.queryByAPI)(instance),(0,_a11yAPI.default)(instance),{update:update,rerender:update,unmount:renderer.unmount,toJSON:renderer.toJSON,debug:debug(instance,renderer)});}function renderWithAct(component,options){var renderer;(0,_act.default)(function(){renderer=_reactTestRenderer.default.create(component,options);});return renderer;}function updateWithAct(renderer,wrap){return function(component){(0,_act.default)(function(){renderer.update(wrap(component));});};}function debug(instance,renderer){function debugImpl(message){return(0,_debugDeep.default)(renderer.toJSON(),message);}debugImpl.shallow=function(message){return(0,_debugShallow.default)(instance,message);};return debugImpl;}

@@ -1,1 +0,1 @@

Object.defineProperty(exports,"__esModule",{value:true});exports.default=waitForExpect;function waitForExpect(expectation){var timeout=arguments.length>1&&arguments[1]!==undefined?arguments[1]:4500;var interval=arguments.length>2&&arguments[2]!==undefined?arguments[2]:50;var startTime=Date.now();return new Promise(function(resolve,reject){var rejectOrRerun=function rejectOrRerun(error){if(Date.now()-startTime>=timeout){reject(error);return;}setTimeout(runExpectation,interval);};function runExpectation(){try{var result=expectation();resolve(result);}catch(error){rejectOrRerun(error);}}setTimeout(runExpectation,0);});}
Object.defineProperty(exports,"__esModule",{value:true});exports.default=waitForElement;function waitForElement(expectation){var timeout=arguments.length>1&&arguments[1]!==undefined?arguments[1]:4500;var interval=arguments.length>2&&arguments[2]!==undefined?arguments[2]:50;var startTime=Date.now();return new Promise(function(resolve,reject){var rejectOrRerun=function rejectOrRerun(error){if(Date.now()-startTime>=timeout){reject(error);return;}setTimeout(runExpectation,interval);};function runExpectation(){try{var result=expectation();resolve(result);}catch(error){rejectOrRerun(error);}}setTimeout(runExpectation,0);});}

@@ -118,2 +118,41 @@ ---

## `cleanup`
```ts
const cleanup: () => void
```
Unmounts React trees that were mounted with `render`.
For example, if you're using the `jest` testing framework, then you would need to use the `afterEach` hook like so:
```jsx
import { cleanup, render } from 'react-native-testing-library'
import { View } from 'react-native'
afterEach(cleanup)
it('renders a view', () => {
render(<View />)
// ...
})
```
The `afterEach(cleanup)` call also works in `describe` blocks:
```jsx
describe('when logged in', () => {
afterEach(cleanup)
it('renders the user', () => {
render(<SiteHeader />)
// ...
});
})
```
Failing to call `cleanup` when you've called `render` could result in a memory leak and tests which are not "idempotent" (which can lead to difficult to debug errors in your tests).
The alternative to `cleanup` is balancing every `render` with an `unmount` method call.
## `fireEvent`

@@ -215,4 +254,6 @@

#### On a `ScrollView`
```jsx
import { ScrollView, TextInput } from 'react-native';
import { ScrollView, Text } from 'react-native';
import { render, fireEvent } from 'react-native-testing-library';

@@ -238,2 +279,39 @@

#### On a `FlatList`
```jsx
import { FlatList, View } from 'react-native';
import { render, fireEvent } from 'react-native-testing-library';
const onEndReached = jest.fn();
const { getByType } = render(
<FlatList
data={Array.from({ length: 10 }, (_, key) => ({ key: `${key}` }))}
renderItem={() => <View style={{ height: 500, width: 100 }} />}
onEndReached={onEndReached}
onEndReachedThreshold={0.2}
/>
);
const eventData = {
nativeEvent: {
contentOffset: {
y: 500,
},
contentSize: {
// Dimensions of the scrollable content
height: 500,
width: 100,
},
layoutMeasurement: {
// Dimensions of the device
height: 100,
width: 100,
},
},
};
fireEvent.scroll(getByType(ScrollView), eventData);
expect(onEndReached).toHaveBeenCalled();
```
## `waitForElement`

@@ -246,3 +324,3 @@

```jsx
function waitForExpect<T: *>(
function waitForElement<T>(
expectation: () => T,

@@ -254,3 +332,3 @@ timeout: number = 4500,

Waits for non-deterministic periods of time until your element appears or times out. `waitForExpect` periodically calls `expectation` every `interval` milliseconds to determine whether the element appeared or not.
Waits for non-deterministic periods of time until your element appears or times out. `waitForElement` periodically calls `expectation` every `interval` milliseconds to determine whether the element appeared or not.

@@ -257,0 +335,0 @@ ```jsx

{
"name": "react-native-testing-library",
"version": "1.11.1",
"version": "1.12.0",
"description": "Simple React Native testing utilities helping you write better tests with less effort",

@@ -20,13 +20,11 @@ "main": "build/index.js",

"@babel/core": "^7.1.2",
"@callstack/eslint-config": "^6.0.0",
"@callstack/eslint-config": "^8.0.0",
"@release-it/conventional-changelog": "^1.1.0",
"@types/react": "^16.7.11",
"@types/react-test-renderer": "^16.0.3",
"@typescript-eslint/eslint-plugin": "^1.10.2",
"babel-jest": "^24.7.1",
"chalk": "^2.4.1",
"conventional-changelog-cli": "^2.0.11",
"dedent": "^0.7.0",
"eslint": "^5.15.2",
"flow-bin": "^0.98.0",
"eslint": "^6.7.2",
"flow-bin": "^0.107.0",
"flow-copy-source": "^2.0.6",

@@ -36,7 +34,7 @@ "jest": "^24.7.1",

"react": "16.8.6",
"react-native": "0.60.3",
"react-native": "0.60.4",
"react-test-renderer": "16.8.6",
"release-it": "^12.3.3",
"strip-ansi": "^5.2.0",
"typescript": "^3.5.3"
"typescript": "^3.7.3"
},

@@ -48,3 +46,3 @@ "dependencies": {

"react": ">=16.0.0",
"react-test-renderer": ">= 16.0.0"
"react-test-renderer": ">=16.0.0"
},

@@ -51,0 +49,0 @@ "scripts": {

@@ -138,2 +138,3 @@ import * as React from 'react';

export declare const flushMicrotasksQueue: () => Promise<any>;
export declare const cleanup: () => void;
export declare const debug: DebugAPI;

@@ -140,0 +141,0 @@ export declare const fireEvent: FireEventAPI;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc