blob: a775fa27490a48feb1eab3fff3d3bb327a8ab045 [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 FauxtonAPI from "../../../../core/api";
import Documents from "../../resources";
import ActionTypes from "../actiontypes";
import reducer from "../reducers";
FauxtonAPI.router = new FauxtonAPI.Router([]);
const doc = new Documents.Doc({id: 'foo'}, {database: 'bar'});
describe('DocEditor Reducer', function () {
it('defines sensible defaults', function () {
const newState = reducer(undefined, { type: 'do_nothing'});
expect(newState.isLoading).toBe(true);
expect(newState.isSaving).toBe(false);
expect(newState.cloneDocModalVisible).toBe(false);
expect(newState.deleteDocModalVisible).toBe(false);
expect(newState.uploadModalVisible).toBe(false);
expect(newState.numFilesUploaded).toBe(0);
expect(newState.uploadInProgress).toBe(false);
expect(newState.uploadPercentage).toBe(0);
});
it('marks loading as complete after doc is loaded', function () {
const newState = reducer(undefined, {
type: ActionTypes.DOC_LOADED,
options: { doc: doc }
});
expect(newState.isLoading).toBe(false);
});
it('showCloneDocModal / hideCloneDocModal', function () {
const newStateShow = reducer(undefined, { type: ActionTypes.SHOW_CLONE_DOC_MODAL });
expect(newStateShow.cloneDocModalVisible).toBe(true);
const newStateHide = reducer(undefined, { type: ActionTypes.HIDE_CLONE_DOC_MODAL });
expect(newStateHide.cloneDocModalVisible).toBe(false);
});
it('showDeleteDocModal / hideDeleteDocModal', function () {
const newStateShow = reducer(undefined, { type: ActionTypes.SHOW_DELETE_DOC_CONFIRMATION_MODAL });
expect(newStateShow.deleteDocModalVisible).toBe(true);
const newStateHide = reducer(undefined, { type: ActionTypes.HIDE_DELETE_DOC_CONFIRMATION_MODAL });
expect(newStateHide.deleteDocModalVisible).toBe(false);
});
it('showUploadModal / hideUploadModal', function () {
const newStateShow = reducer(undefined, { type: ActionTypes.SHOW_UPLOAD_MODAL });
expect(newStateShow.uploadModalVisible).toBe(true);
const newStateHide = reducer(undefined, { type: ActionTypes.HIDE_UPLOAD_MODAL });
expect(newStateHide.uploadModalVisible).toBe(false);
});
it('saving document in-progress / completed', function () {
const newStateSaving = reducer(undefined, { type: ActionTypes.SAVING_DOCUMENT });
expect(newStateSaving.isSaving).toBe(true);
const newStateSavingDone = reducer(undefined, { type: ActionTypes.SAVING_DOCUMENT_COMPLETED });
expect(newStateSavingDone.isSaving).toBe(false);
});
});