blob: 8d649ea7ce45952e894fb7ee2a55d329222e0d09 [file] [log] [blame]
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
import sidebar from "../reducers";
import ActionTypes from "../actiontypes";
function isVisible (state, designDoc, indexGroup) {
if (!state.toggledSections[designDoc]) {
return false;
}
if (indexGroup) {
return state.toggledSections[designDoc].indexGroups[indexGroup];
}
return state.toggledSections[designDoc].visible;
}
describe('Sidebar Reducer', () => {
describe('toggle state', () => {
it('should be visible after being toggled', () => {
const designDoc = 'designDoc';
const action = {
type: ActionTypes.SIDEBAR_TOGGLE_CONTENT,
designDoc: designDoc
};
const newState = sidebar(undefined, action);
expect(isVisible(newState, designDoc)).toBeTruthy();
});
it('should not be visible after being toggled twice', () => {
const designDoc = 'designDoc2';
const action = {
type: ActionTypes.SIDEBAR_TOGGLE_CONTENT,
designDoc: designDoc
};
let newState = sidebar(undefined, action);
newState = sidebar(newState, action);
expect(isVisible(newState, designDoc)).toBe(false);
});
});
describe('toggle state for index', () => {
const designDoc = 'design-doc';
const indexGroup = 'index';
const action = {
type: ActionTypes.SIDEBAR_TOGGLE_CONTENT,
designDoc: designDoc,
indexGroup: indexGroup
};
it('should toggle the state', () => {
let newState = sidebar(undefined, action);
expect(isVisible(newState, designDoc)).toBeTruthy();
newState = sidebar(newState, action);
expect(isVisible(newState, designDoc, indexGroup)).toBeTruthy();
newState = sidebar(newState, action);
expect(isVisible(newState, designDoc, indexGroup)).toBe(false);
});
});
});