application/__tests__/components/common/rich-editor-test.js
jest.unmock('./../../../components/common/rich-editor');
jest.unmock('./../../../services/base-service');
jest.unmock('./../../../services/copyNote-service');
jest.unmock('./../../../components/common/rich-editor/pull-quote');
jest.unmock('./../../../components/common/rich-editor/embed');
jest.unmock('./../../../components/common/rich-editor/media');
jest.unmock('./../../../components/common/rich-editor/link');
jest.unmock('./../../../alt');
jest.unmock('draft-js');
import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils';
import Immutable from 'immutable';
import sinon from 'sinon';
import AltTestingUtils from 'alt-utils/lib/AltTestingUtils';
import RichEditor from './../../../components/common/rich-editor';
import {CopyNoteService, CopyNoteStore} from './../../../services/copyNote-service';
// We're only testing additional functionality and some of the basic
// properties built in. The assumption being that Draft is an external
// lib and is already tested
describe('RichEditor', () => {
    beforeEach(() => {
        jasmine.clock().uninstall();
    });
    it('loads default state', () => {
        const editor = TestUtils.renderIntoDocument(
            <RichEditor
                label="Test"
                name="test"
                readOnly={false}
                version={1}
                defaultValue='test'
                onChange={() => {}}
                />
        );
        expect(editor.editingReferenceCounter).toEqual(0);
    });
    it('increments and decrements reference counter', () => {
        const editor = TestUtils.renderIntoDocument(
            <RichEditor
                label="Test"
                name="test"
                readOnly={false}
                version={1}
                defaultValue='test'
                onChange={() => {}}
                />
        );
        editor.retain();
        editor.retain();
        expect(editor.editingReferenceCounter).toEqual(2);
        expect(editor.state.isComponentEditing).toEqual(true);
        editor.release();
        expect(editor.editingReferenceCounter).toEqual(1);
        expect(editor.state.isComponentEditing).toEqual(true);
        editor.release();
        expect(editor.editingReferenceCounter).toEqual(0);
        expect(editor.state.isComponentEditing).toEqual(false);
    });
});