Jest охват редуктором - уничтожение объекта не покрыто - PullRequest
0 голосов
/ 22 марта 2019

У меня есть следующая проблема с Jest: У меня есть этот редуктор:

[REMOVE_FILTER]: (state: FiltersState, action: Action<string>): FiltersState => {
    const { [action.payload!]: deleted, ...activeFilters } = state.activeFilters;
    return { ...state, activeFilters, createFilterSelection: undefined, filterCreateOpen: false };
}

Когда я пытаюсь проверить это, он говорит, что у меня нет покрытия для

...activeFilters } = state.activeFilters;

Вот мой тест:

test(REMOVE_FILTER, () => {
    const action: IAction<string> = {
        type: REMOVE_FILTER,
        payload: "subprovider"
    };

    expect(
        testReducer({ reducer, state, action })
    ).toEqual({
        ...state,
        activeFilters: { name: null, branded: null },
        createFilterSelection: undefined,
        filterCreateOpen: false
    });
});

Может кто-нибудь подсказать, что я делаю не так?

Я использую:

  1. Шутка 23.6.0
  2. Машинопись 3.4.0
  3. Redux 4.0.0
  4. React-Redux: 6.0.0
  5. Redux Действия: 2.6.1

Спасибо!

P.S: Вот конфиг Jest:

{
  "coverageThreshold": {
    "global": {
      "branches": 100,
      "functions": 100,
      "lines": 100,
      "statements": 100
    }
  },
  "globals": {
    "window": true,
    "document": true
  },
  "transform": {
    ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
  },
  "testRegex": "(/__test__/.*)\\.test\\.(ts|tsx)$",
  "notify": true,
  "collectCoverageFrom": [
    "**/*.{ts,tsx}"
  ],
  "coveragePathIgnorePatterns": [
    "(/__e2e__/.*)",
    "(/__specs__/.*)",
    "(/__test__/.*)",
    "(/interfaces/.*)",
    "(index.ts)",
    "(src/server/app.ts)",
    "(src/server/config.ts)",
    "(/mock/.*)",
    "(data/mock.ts)",
    "(automapperConfiguration.ts)",
    "(src/app/store/store.ts)",
    "(src/app/containers/brand-configuration/.*)"
  ],
  "moduleFileExtensions": [
    "ts",
    "tsx",
    "js",
    "json"
  ],
  "setupTestFrameworkScriptFile": "<rootDir>/jestSetup.js",
  "testURL": "http://localhost/"
}

Приведенный выше код TS передается по адресу:

    [REMOVE_FILTER]: (state, action) => {
        const _a = state.activeFilters, _b = action.payload, deleted = _a[_b], activeFilters = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
        return Object.assign({}, state, { activeFilters, createFilterSelection: undefined, filterCreateOpen: false });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...