draft-js-export-markdown
Version:
DraftJS: Export ContentState to Markdown
61 lines (46 loc) • 2.45 kB
JavaScript
;
var _expect = _interopRequireDefault(require("expect"));
var _draftJs = require("draft-js");
var _stateToMarkdown = _interopRequireDefault(require("../stateToMarkdown"));
var _fs = _interopRequireDefault(require("fs"));
var _path = require("path");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var _global = global,
describe = _global.describe,
it = _global.it;
// This separates the test cases in `data/test-cases.txt`.
var SEP = '\n\n>>';
var testCasesRaw = _fs["default"].readFileSync((0, _path.join)(__dirname, '..', '..', 'test', 'test-cases.txt'), 'utf8');
var testCases = testCasesRaw.slice(2).trim().split(SEP).map(function (text) {
var lines = text.split('\n');
var _lines$shift$split = lines.shift().split('|'),
_lines$shift$split2 = _slicedToArray(_lines$shift$split, 2),
description = _lines$shift$split2[0],
config = _lines$shift$split2[1];
description = description.trim();
var options = config ? JSON.parse(config.trim()) : undefined;
var state = JSON.parse(lines.shift());
var markdown = lines.join('\n');
return {
description: description,
state: state,
markdown: markdown,
options: options
};
});
describe('stateToMarkdown', function () {
testCases.forEach(function (testCase) {
var description = testCase.description,
state = testCase.state,
markdown = testCase.markdown,
options = testCase.options;
it("should render ".concat(description), function () {
var contentState = (0, _draftJs.convertFromRaw)(state);
(0, _expect["default"])((0, _stateToMarkdown["default"])(contentState, options)).toBe(markdown + '\n');
});
});
});