blob: 7ed4a62fc274cfa79b89237f06b7ae7937c0362a [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 * as Actions from '../index-results/actions/queryoptions';
import ActionTypes from '../index-results/actiontypes';
describe('Docs Query Options API', () => {
it('resetFetchParamsBeforeExecute returns proper fetch params', () => {
const perPage = 20;
expect(Actions.resetFetchParamsBeforeExecute(perPage)).toEqual({
limit: 21,
skip: 0
});
});
it('queryOptionsToggleVisibility returns the proper event to dispatch', () => {
const newVisibility = true;
expect(Actions.queryOptionsToggleVisibility(newVisibility)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
isVisible: true
}
});
});
it('queryOptionsToggleReduce returns the proper event to dispatch', () => {
const previousReduce = true;
expect(Actions.queryOptionsToggleReduce(previousReduce)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
reduce: false
}
});
});
it('queryOptionsUpdateGroupLevel returns the proper event to dispatch', () => {
const newGroupLevel = 'exact';
expect(Actions.queryOptionsUpdateGroupLevel(newGroupLevel)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
groupLevel: 'exact'
}
});
});
it('queryOptionsToggleByKeys returns the proper event to dispatch', () => {
const previousShowByKeys = true;
expect(Actions.queryOptionsToggleByKeys(previousShowByKeys)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
showByKeys: false,
showBetweenKeys: true
}
});
});
it('queryOptionsToggleBetweenKeys returns the proper event to dispatch', () => {
const previousShowBetweenKeys = true;
expect(Actions.queryOptionsToggleBetweenKeys(previousShowBetweenKeys)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
showBetweenKeys: false,
showByKeys: true,
}
});
});
it('queryOptionsUpdateBetweenKeys returns the proper event to dispatch', () => {
const newBetweenKeys = {
include: true,
startkey: '"_design"',
endkey: '"_design"'
};
expect(Actions.queryOptionsUpdateBetweenKeys(newBetweenKeys)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
betweenKeys: {
include: true,
startkey: '"_design"',
endkey: '"_design"'
}
}
});
});
it('queryOptionsUpdateByKeys returns the proper event to dispatch', () => {
const newByKeys = ['foo', 'bar'];
expect(Actions.queryOptionsUpdateByKeys(newByKeys)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
byKeys: ['foo', 'bar']
}
});
});
it('queryOptionsToggleDescending returns the proper event to dispatch', () => {
const previousDescending = true;
expect(Actions.queryOptionsToggleDescending(previousDescending)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
descending: false
}
});
});
it('queryOptionsUpdateSkip returns the proper event to dispatch', () => {
const newSkip = 5;
expect(Actions.queryOptionsUpdateSkip(newSkip)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
skip: 5
}
});
});
it('queryOptionsUpdateLimit returns the proper event to dispatch', () => {
const newLimit = 50;
expect(Actions.queryOptionsUpdateLimit(newLimit)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
limit: 50
}
});
});
it('queryOptionsToggleIncludeDocs returns the proper event to dispatch', () => {
const previousIncludeDocs = true;
expect(Actions.queryOptionsToggleIncludeDocs(previousIncludeDocs)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
includeDocs: false
}
});
});
it('queryOptionsFilterOnlyDdocs returns the proper event to dispatch', () => {
expect(Actions.queryOptionsFilterOnlyDdocs()).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
betweenKeys: {
include: false,
startkey: '"_design"',
endkey: '"_design0"'
},
showBetweenKeys: true,
showByKeys: false
}
});
});
it('queryOptionsToggleStable returns the proper event to dispatch', () => {
expect(Actions.queryOptionsToggleStable(true)).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
stable: false
}
});
});
it('queryOptionsChangeUpdate returns the proper event to dispatch', () => {
expect(Actions.queryOptionsChangeUpdate('lazy')).toEqual({
type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
options: {
update: 'lazy'
}
});
});
});