quill-delta-to-html
Version:
Converts Quill's delta ops to HTML
80 lines (68 loc) • 3.26 kB
text/typescript
import 'mocha';
import * as assert from 'assert';
import {DeltaInsertOp} from './../src/DeltaInsertOp';
import {InsertDataQuill} from './../src/InsertData';
import { InsertOpsConverter } from "./../src/InsertOpsConverter";
var data = [
{"ops":[
{"insert":"This "},
{"attributes":{"font":"monospace"},"insert":"is"},
{"insert":" a "},{"attributes":{"size":"large"},"insert":"test"},
{"insert":" "},
{"attributes":{"italic":true,"bold":true},"insert":"data"},
{"insert":" "},
{"attributes":{"underline":true,"strike":true},"insert":"that"},
{"insert":" is "},{"attributes":{"color":"#e60000"},"insert":"will"},
{"insert":" "},{"attributes":{"background":"#ffebcc"},"insert":"test"},
{"insert":" "},{"attributes":{"script":"sub"},"insert":"the"},
{"insert":" "},{"attributes":{"script":"super"},"insert":"rendering"},
{"insert":" of "},{"attributes":{"link":"yahoo"},"insert":"inline"},
{"insert":" "},
{"insert":{"formula":"x=data"}},
{"insert":" formats.\n"}
],
html:[
'<p>','This ','<span class="noz-font-monospace">is</span>',
' a ', '<span class="noz-size-large">test</span>',' ',
'<strong><em>data</em></strong>',' ',
'<s><u>that</u></s>',
' is ', '<span style="color:#e60000">will</span>', ' ',
'<span style="background-color:#ffebcc">test</span>', ' ',
'<sub>the</sub>',' ', '<sup>rendering</sup>',' of ',
'<a href="yahoo">inline</a>',' ','<span class="noz-formula">x=data</span>',
' formats.<br />'
].join('')
}
]
describe('InsertOpsConverter', function () {
describe('#convert()', function () {
it('should transform raw delta ops to DeltaInsertOp[]', function () {
var objs = InsertOpsConverter.convert(data[0].ops);
assert.equal(objs[0] instanceof DeltaInsertOp, true);
assert.equal(objs[objs.length -1] instanceof DeltaInsertOp, true);
assert.deepEqual(InsertOpsConverter.convert(null), []);
assert.deepEqual(InsertOpsConverter.convert([{insert:''}]), []);
assert.deepEqual(InsertOpsConverter.convert([{insert:{cake: ''}}]), [
{insert: {type: 'cake',value: ''}, attributes: {}}
]);
assert.deepEqual(
InsertOpsConverter.convert([{"insert": 2}]),
[]
);
//console.log(objs);
});
});
describe('#convertInsertVal()', function () {
it('should convert raw .insert value to valid TInsert or null', function () {
[null, undefined, 3, {}].forEach((v) => {
var act = InsertOpsConverter.convertInsertVal(v);
assert.equal(act, null);
});
["fdsf", {image: 'ff'}, {video: ''}, {formula: ''}].forEach((v) => {
var act = InsertOpsConverter.convertInsertVal(v);
assert.notEqual(act, null);
assert.ok(act instanceof InsertDataQuill);
});
});
});
});