Redux Saga Test с шуткой - PullRequest
       15

Redux Saga Test с шуткой

0 голосов
/ 07 января 2020

Сага, я писал, всегда возвращаю 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

...