Как проверить селектор NgRx, который использует реквизит? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть следующий селектор:

export const selectTableById = createSelector(selectRestaurantState, (state: RestaurantState, props) =>
  state.tables.find((table) => table.id === props.id)
);

, который использует реквизиты для добавления дополнительной информации к селектору при его вызове.

В модульном тесте я пытаюсь что-то вроде этого:

  it("should ...", () => {
    expect(selectTableById.projector(state, { props: { id: "id" } })).toEqual(...);
  });

но я не нашел информации о том, как вызвать функцию проектора с помощью реквизита

1 Ответ

0 голосов
/ 06 апреля 2020

Нашел:

const tables = ...
const state = <RestaurantState>{ tables };

it("should select table matched by id from props", () => {
    const props = { id: "t2" };
    expect(selectTableById.projector(state, props)).toEqual(tables[1]);
});

Моя проблема заключалась в том, что я добавил неправильное состояние (все состояние приложения, а не только состояние ресторана) в функцию проектора, и реквизиты были плохо отформатированы.

...