Utilities for testing Ink apps
npm install ink-testing-library> Utilities for testing Ink apps
```
$ npm install --save-dev ink-testing-library
`jsx
import React from 'react';
import {Text} from 'ink';
import {render} from 'ink-testing-library';
const Counter = ({count}) =>
const {lastFrame, rerender} = render(
lastFrame() === 'Count: 0'; //=> true
rerender(
lastFrame() === 'Count: 1'; //=> true
`
#### tree
Type: ReactElement
React component to render.
`jsx`
render(
This function returns an object, which contains the following methods and properties.
#### lastFrame()
Type: function
Shortcut to stdout.lastFrame.
#### frames
Type: array
Shortcut to stdout.frames.
#### rerender(tree)
Type: function
##### tree
Type: ReactElement
Rerender root component with different props or replace with another component.
`jsx`
const {rerender} = render(
rerender(
#### unmount()
Type: function
Unmount current component.
`jsx`
const {unmount} = render(
unmount();
#### stdin
Type: object
##### write()
Type: function
Write data to current component's stdin stream.
`jsx
import {useInput, Text} from 'ink';
const Test = () => {
useInput(input => {
console.log(input);
//=> 'hello'
});
return …;
};
const {stdin} = render(
stdin.write('hello');
`
#### stdout
Type: object
##### lastFrame()
Type: function
Return the last rendered frame (output) from stdout stream.
`jsx
const Test = () =>
const {stdout} = render(
stdout.lastFrame(); //=> 'Hello'
`
##### frames
Type: array
Array of all rendered frames, where the last frame is also the last item in that array.
`jsx
const Counter = ({count}) =>
const {stdout, rerender} = render(
rerender(
console.log(stdout.frames); //=> ['Count: 0', 'Count: 1']
`
#### stderr
Type: object
##### lastFrame()
Type: function
Same as lastFrame in stdout, but for stderr stream.
##### frames
Type: array