blob: 0e94b11da4c3fc71ed8909061fd16d3a02416d89 [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 Stores from "../stores";
import "../../documents/base";
import DatabaseActions from "../actions";
const store = Stores.databasesStore;
describe('Databases Store', function () {
describe('database list storage', function () {
beforeEach(() => {
store.reset();
});
it('marks failed detail fetches as failed dbs', () => {
DatabaseActions.updateDatabases({
dbList: ['db1', 'db2'],
databaseDetails: [{db_name: 'db1', sizes: {}}, {db_name: 'db2', sizes: {}}],
failedDbs: ['db1']
});
const list = store.getDbList();
expect(list[0].failed).toBeTruthy();
});
it('unions details', () => {
DatabaseActions.updateDatabases({
dbList: ['db1'],
databaseDetails: [{db_name: 'db1', doc_count: 5, doc_del_count: 3, sizes: {}}],
failedDbs: []
});
const list = store.getDbList();
expect(list[0].docCount).toBe(5);
expect(list[0].docDelCount).toBe(3);
});
it('determines database availability', () => {
DatabaseActions.updateDatabases({
dbList: ['db1', 'db2'],
databaseDetails: [],
failedDbs: []
});
expect(store.doesDatabaseExist('db1')).toBeTruthy();
expect(!store.doesDatabaseExist('db3')).toBeTruthy();
});
it('uses the sizes.active prop', () => {
DatabaseActions.updateDatabases({
dbList: ['db1'],
databaseDetails: [{
db_name: 'db1',
doc_count: 5,
doc_del_count: 3,
sizes: {
active: 1337,
external: 0,
file: 0,
}
}],
failedDbs: []
});
const dbList = store.getDbList();
expect(dbList[0].dataSize).toBe('1.3 KB');
});
});
});