Диспетчеризация в фиктивном магазине выдает ошибку в тесте Jest - PullRequest
1 голос
/ 17 января 2020

В моем приложении React и Redux я пытаюсь запустить мой первый тест с использованием Jest & TypeScript, и я не могу его успешно запустить. Для ясности само приложение работает без ошибок и работает хорошо. Похоже, я неправильно настраиваю ответ Axe ios. Когда я запускаю Jest тесты, получаю следующую ошибку:

Действия могут не иметь неопределенного свойства "type". Вы неправильно написали константу? ...

Создатель действия:

export const fetchBoats = (
  userAuthToken: string,
  filterValues: BoatSearchFilterParams = {},
  page: number = 1
) => (dispatch: any) => {
  const filterParams: string = setFilterParamsAsString(filterValues);
  const url = `${GET_BOATS}?${filterParams}&page=${page}`;
  return dispatch({
    types: [FETCH_REQUEST, FETCH_SUCCESS, FETCH_FAILURE],
    promise: axios({
      method: "get",
      url: url,
      headers: {
        Authorization: `Token ${userAuthToken}`
      }
    })
  });
};

Мой тестовый файл в его текущем состоянии без утверждений:

import configureStore from "redux-mock-store";
import thunk from "redux-thunk";
import { fetchResults } from "./boats";
import axios from "axios";
const mockedAxios = axios as jest.Mocked<typeof axios>;

const mockStore = configureStore([thunk]);
const store = mockStore();
jest.mock("axios");

const respObj = {
  results : ["a", "b", "c", "d"]
};

describe("Test the 'Boats' action", () => {
  beforeEach(() => {
    store.clearActions();
  });

  it("should have data structure matching the expected structure", () => {
    const respObj = { data: resp };
    mockedAxios.get.mockResolvedValue(respObj);
    const ac: any = store.dispatch(fetchBoats("abcabcabc"));
//    expect(ac).toContain(); commented out.
  });
});

Как я могу заставить создателя действия вернуть ответ respObj и затем подтвердить его?

jest js error

РЕДАКТИРОВАТЬ :

Появляется некоторая путаница в том, как работает создатель действия. У меня есть пользовательское промежуточное ПО, которое перехватывает действие с подписью как создатель этого действия выше. Это действие действительно и работает очень хорошо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...