12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import { searchResults, sections } from '../testData';
- import { FETCH_ITEMS, FETCH_RESULTS, TOGGLE_SECTION, MOVE_SELECTION_DOWN, MOVE_SELECTION_UP } from './actionTypes';
- import { searchReducer as reducer, dashboardsSearchState } from './dashboardSearch';
- const defaultState = { selectedIndex: 0, loading: false, results: sections as any[], initialLoading: false };
- describe('Dashboard Search reducer', () => {
- it('should return the initial state', () => {
- expect(reducer(dashboardsSearchState, {} as any)).toEqual(dashboardsSearchState);
- });
- it('should set the results and mark first item as selected', () => {
- const newState = reducer(dashboardsSearchState, { type: FETCH_RESULTS, payload: searchResults });
- expect(newState).toEqual({ loading: false, selectedIndex: 0, results: searchResults, initialLoading: false });
- expect(newState.results[0].selected).toBeTruthy();
- });
- it('should toggle selected section', () => {
- const newState = reducer(defaultState, { type: TOGGLE_SECTION, payload: sections[5] });
- expect(newState.results[5].expanded).toBeFalsy();
- const newState2 = reducer(defaultState, { type: TOGGLE_SECTION, payload: sections[1] });
- expect(newState2.results[1].expanded).toBeTruthy();
- });
- it('should handle FETCH_ITEMS', () => {
- const items = [
- {
- id: 4072,
- uid: 'OzAIf_rWz',
- title: 'New dashboard Copy 3',
- type: 'dash-db',
- isStarred: false,
- },
- {
- id: 46,
- uid: '8DY63kQZk',
- title: 'Stocks',
- type: 'dash-db',
- isStarred: false,
- },
- ];
- const newState = reducer(defaultState, {
- type: FETCH_ITEMS,
- payload: {
- section: sections[2],
- items,
- },
- });
- expect(newState.results[2].items).toEqual(items);
- });
- it('should handle MOVE_SELECTION_DOWN', () => {
- const newState = reducer(defaultState, {
- type: MOVE_SELECTION_DOWN,
- });
- expect(newState.selectedIndex).toEqual(1);
- expect(newState.results[0].items[0].selected).toBeTruthy();
- const newState2 = reducer(newState, {
- type: MOVE_SELECTION_DOWN,
- });
- expect(newState2.selectedIndex).toEqual(2);
- expect(newState2.results[1].selected).toBeTruthy();
- // Shouldn't go over the visible results length - 1 (9)
- const newState3 = reducer(
- { ...defaultState, selectedIndex: 9 },
- {
- type: MOVE_SELECTION_DOWN,
- }
- );
- expect(newState3.selectedIndex).toEqual(9);
- });
- it('should handle MOVE_SELECTION_UP', () => {
- // shouldn't move beyond 0
- const newState = reducer(defaultState, {
- type: MOVE_SELECTION_UP,
- });
- expect(newState.selectedIndex).toEqual(0);
- const newState2 = reducer(
- { ...defaultState, selectedIndex: 3 },
- {
- type: MOVE_SELECTION_UP,
- }
- );
- expect(newState2.selectedIndex).toEqual(2);
- expect(newState2.results[1].selected).toBeTruthy();
- });
- });
|