Jest Mock AsyncStorage for react-native


Its a mock of react-native AsyncStorage for jest tests
Install
- Install:
npm install --save mock-async-storage
- Module:
require('mock-async-storage')
This package is published with the following editions:
mock-async-storage/src/index.js
is Source + ESNext + Import + Flowmock-async-storage
aliases mock-async-storage/lib/index.js
mock-async-storage/lib/index.js
is Babel Compiled + ES2015 + Require
Older environments may need Babel's Polyfill or something similar.
Usage
In your test codes:
const mockStorage = require('mock-async-storage');
mockStorage.mock();
mockStorage.release();
Working example:
import 'react-native';
import { mock, release } from 'mock-async-storage'
import React from 'react';
import Index from '../index.android.js';
import renderer from 'react-test-renderer';
mock()
import { AsyncStorage as storage } from 'react-native'
it('renders correctly', () => {
const tree = renderer.create(
<Index />
);
});
it('Mock Async Storage working', async () => {
await storage.setItem('myKey', 'myValue')
const value = await storage.getItem('myKey')
expect(value).toBe('myValue')
})