blob: 4f57bab32067f6cd1747acca8d89fe97fa5d0614 [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 databases from '../reducers';
import ActionTypes from '../actiontypes';
describe('Databases Reducer', () => {
it('sets if partioned database feature is available', () => {
const action = {
type: ActionTypes.DATABASES_PARTITIONED_DB_AVAILABLE,
options: { available: true }
};
let newState = databases(undefined, { type: 'DO_NOTHIN'});
expect(newState.partitionedDatabasesAvailable).toBe(false);
newState = databases(newState, action);
expect(newState.partitionedDatabasesAvailable).toBe(true);
});
it('sets isPartitioned to false when props is not present', () => {
const action = {
type: ActionTypes.DATABASES_FETCH_SELECTED_DB_METADATA_SUCCESS,
options: {
metadata: { name: 'dummy_db' }
}
};
const newState = databases(undefined, action);
expect(newState.isDbPartitioned).toBe(false);
expect(newState.dbInfo).toBeDefined();
expect(newState.dbInfo.name).toBe('dummy_db');
});
it('sets isPartitioned based on db metadata', () => {
const action = {
type: ActionTypes.DATABASES_FETCH_SELECTED_DB_METADATA_SUCCESS,
options: {
metadata: {
name: 'dummy_db',
props: { partitioned: true }
}
}
};
const newState = databases(undefined, action);
expect(newState.isDbPartitioned).toBe(true);
action.options.metadata.props.partitioned = false;
const newState2 = databases(undefined, action);
expect(newState2.isDbPartitioned).toBe(false);
});
});