@accordproject/markdown-editor
Version:
A rich text editor that can read and write markdown text. Based on Slate.js.
52 lines (38 loc) • 2 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _react = _interopRequireDefault(require("react"));
var _enzyme = _interopRequireWildcard(require("enzyme"));
var _enzymeAdapterReact = _interopRequireDefault(require("enzyme-adapter-react-16"));
var _markdownSlate = require("@accordproject/markdown-slate");
var _index = _interopRequireDefault(require("./index"));
var _list = _interopRequireDefault(require("../plugins/list"));
const plugins = [(0, _list.default)()];
_enzyme.default.configure({
adapter: new _enzymeAdapterReact.default()
}); // Default markdown value
const defaultValue = "My Heading\n\nThis is text. This is *italic* text. This is **bold** text. This is a [link](https://clause.io). This is `inline code`.\n\nThis is ***bold and italic*** text\n\n> This is a quote.\n\nHeading Two\n\nThis is more text.\n\nOrdered lists:\n\n1. one\n2. two\n3. three\n\nOr:\n\n- apples\n- pears\n- peaches\n\n### Sub heading\n\nThis is more text.\n\nFin.";
const slateTransformer = new _markdownSlate.SlateTransformer();
const propsObj = {
width: '600px'
};
const onSlateValueChange = () => {// A dummy onChange props
};
describe('SlateAsInputEditor component', () => {
test('component mount', () => {
const slateValue = slateTransformer.fromMarkdown(defaultValue);
const wrapper = (0, _enzyme.shallow)(_react.default.createElement(_index.default, {
readOnly: false,
lockText: true,
plugins: plugins,
value: slateValue,
onChange: onSlateValueChange,
editorProps: propsObj
}));
expect(wrapper.find('.doc-inner').length).toBe(1);
}); // test('successful roundtrip', () => {
// const slateValue = slateTransformer.fromMarkdown(defaultValue);
// const markdown = slateTransformer.toMarkdown(slateValue);
// expect(markdown).toEqual(defaultValue);
// });
});