Как проверить состояние редукции при импорте в функцию без реакции - PullRequest
0 голосов
/ 17 мая 2018

Как проверить функцию, которая импортирует хранилище с избыточностью?

Вот функция, которая импортирует избыточное хранилище.

//getLabel.js 
 import store from '../store';

const getLabel = (label) => {
  let labels = store.getState().labels;
  if (!labels) return label;
  //...do some calculations
  return result;
};

Вот мой юнит тест

// getLabel.test.js
 import getLabel from './getLabel';
 import { createMockStore } from 'redux-test-utils';
 let mockLabel = {
  add_filter: {
    en: "Add Filter",
    cn: "添加過濾器"
  }
}

let mockLabels = {
  labels: {
    language: "en",
    label: mockLabel
  }
};       
let store = createMockStore(mockLabels);    
const action = {
  type: 'GET_LABELS',
  labels: mockLabels
};

describe('example', () => {
  it('works', () => {    
    store.dispatch(action);
    expect(store.getAction(action.type)).toEqual(action);
    expect(store.getActions()).toEqual([action]);
    expect(store.isActionDispatched(action)).toBe(true);
    expect(store.isActionTypeDispatched(action.type)).toBe(true);
    expect(store.getState()).toBe(mockLabels);
    expect(getLabel('This label does not exist')).toBe('This label does not exist');
    expect(getLabel('add filter')).toBe('Add Filter');  
  });
});

Последний тест не пройден, поскольку используемое хранилище импортировано в getLabel.js

...