Сага, я писал, всегда возвращаю GeneratorFunctionPrototype
. из-за этого теста не проходит
Функция сохранения ключа в asyncstorage выглядит следующим образом
import AsyncStorage from '@react-native-community/async-storage';
import { call } from 'redux-saga/effects';
export default function* getKey(){
const authtoken = yield call(AsyncStorage.getItem, 'authtoken');
}
тестовый код для getKeys имеет вид
import AsyncStorage from '@react-native-community/async-storage';
const mock = {
AsyncStorage: {
setItem: jest.fn(() => {
return new Promise((resolve, reject) => {
resolve(null);
});
}),
getItem: jest.fn(() => {
return new Promise((resolve, reject) => {
resolve(JSON.stringify({ authtoken: 'token' }));
});
}),
},
};
jest.mock('@react-native-community/async-storage', () => mock);
test('get key from in asyncstorage', () => {
const value = gen.next().value;
expect(value).toStrictEqual(call(mock.AsyncStorage.getItem,"authtoken"));
});
Результат, который я получил, равен
expect(received).toStrictEqual(expected) // deep equality
- Expected
+ Received
- Object {
- "@@redux-saga/IO": true,
- "combinator": false,
- "payload": Object {
- "args": Array [
- "authtoken",
- ],
- "context": null,
- "fn": [Function mockConstructor],
- },
- "type": "CALL",
+ GeneratorFunctionPrototype {
+ "_invoke": [Function invoke],
}
46 | test('get from token in async storage', () => {
47 | const value = gen.next().value;
> 48 | expect(value).toStrictEqual(call(mock.AsyncStorage.getItem,"authtoken"));
| ^
49 | });
50 |
Почему вывод всегда GeneratorFunctionPrototype