Skip to content

Instantly share code, notes, and snippets.

View CodingItWrong's full-sized avatar

Josh Justice CodingItWrong

View GitHub Profile
{
...
"detox": {
- "test-runner": "jest"
+ "test-runner": "jest",
+ "configurations": {
+ "ios.sim": {
+ "binaryPath": "bin/Exponent.app",
+ "type": "ios.simulator",
+ "name": "iPhone 8"
+const { reloadApp } = require('detox-expo-helpers');
+
describe('Example', () => {
beforeEach(async () => {
- await device.reloadReactNative();
+ await reloadApp();
});
"android": "expo start --android",
"ios": "expo start --ios",
+ "test": "node_modules/.bin/jest test/**/*.spec.js",
"eject": "expo eject"
},
...
"jest-expo": "^31.0.0"
},
+ "jest": {
+ "preset": "jest-expo"
import React from 'react';
import {
FlatList,
Text,
} from 'react-native';
const MessageList = ({ data }) => (
<FlatList
data={data}
keyExtractor={item => item}
import NewMessageForm from './NewMessageForm';
+import MessageList from './MessageList';
...
render() {
+ const { messages } = this.state;
return (
<View>
<NewMessageForm onSend={this.handleSend} />
+ <MessageList data={messages} />
export default class App extends Component {
+ state = { messages: [] }
+
handleSend = (newMessage) => {
+ this.setState(state => ({ messages: [newMessage, ...state.messages] }));
}
export default class App extends Component {
+ handleSend = (newMessage) => {
+ }
+
render() {
return (
<View>
- <NewMessageForm />
+ <NewMessageForm onSend={this.handleSend} />
</View>
handleSend = () => {
+ const { inputText } = this.state;
+ const { onSend } = this.props;
+
+ onSend(inputText);
+
this.setState({ inputText: '' });
}
describe('clicking send', () => {
const messageText = 'Hello world';
+ let sendHandler;
let getByTestId;
beforeEach(() => {
+ sendHandler = jest.fn();
- ({ getByTestId } = render(<NewMessageForm />));
export default class NewMessageForm extends Component {
state = { inputText: '' }
handleChangeText = (text) => {
this.setState({ inputText: text });
}
+ handleSend = () => {
+ this.setState({ inputText: '' });
+ }