import Delta from 'quill-delta'; import Editor from '../../../core/editor'; describe('Code', function() { it('format newline', function() { const editor = this.initialize(Editor, '


'); editor.formatLine(0, 1, { 'code-block': true }); expect(editor.scroll.domNode).toEqualHTML( `

`, ); }); it('format lines', function() { const editor = this.initialize(Editor, '

0123

5678

'); editor.formatLine(2, 5, { 'code-block': true }); expect(editor.getDelta()).toEqual( new Delta() .insert('0123') .insert('\n', { 'code-block': true }) .insert('5678') .insert('\n', { 'code-block': true }), ); expect(editor.scroll.domNode).toEqualHTML( `
0123
5678
`, ); }); it('remove format', function() { const editor = this.initialize( Editor, '
0123
', ); editor.formatText(4, 1, { 'code-block': false }); expect(editor.getDelta()).toEqual(new Delta().insert('0123\n')); expect(editor.scroll.domNode).toEqualHTML('

0123

'); }); it('delete last', function() { const editor = this.initialize( Editor, '

0123


5678

', ); editor.deleteText(4, 1); expect(editor.getDelta()).toEqual( new Delta() .insert('0123') .insert('\n', { 'code-block': true }) .insert('5678\n'), ); expect(editor.scroll.domNode).toEqualHTML( '
0123

5678

', ); }); it('delete merge before', function() { const editor = this.initialize( Editor, '

0123

4567
', ); editor.deleteText(4, 1); expect(editor.getDelta()).toEqual( new Delta().insert('01234567').insert('\n', { 'code-block': true }), ); expect(editor.scroll.domNode).toEqualHTML( '
01234567
', ); }); it('delete merge after', function() { const editor = this.initialize( Editor, '
0123

4567

', ); editor.deleteText(4, 1); expect(editor.getDelta()).toEqual( new Delta().insert('01234567').insert('\n', { header: 1 }), ); expect(editor.scroll.domNode).toEqualHTML('

01234567

'); }); it('delete across before partial merge', function() { const editor = this.initialize( Editor, `
01
34
67

90

`, ); editor.deleteText(7, 3); expect(editor.getDelta()).toEqual( new Delta() .insert('01') .insert('\n', { 'code-block': true }) .insert('34') .insert('\n', { 'code-block': true }) .insert('60') .insert('\n', { header: 1 }), ); expect(editor.scroll.domNode.innerHTML).toEqualHTML( `
01
34

60

`, ); }); it('delete across before no merge', function() { const editor = this.initialize( Editor, `
01
34

6789

`, ); editor.deleteText(3, 5); expect(editor.getDelta()).toEqual( new Delta() .insert('01') .insert('\n', { 'code-block': true }) .insert('89') .insert('\n', { header: 1 }), ); expect(editor.scroll.domNode.innerHTML).toEqualHTML( '
01

89

', ); }); it('delete across after', function() { const editor = this.initialize( Editor, `

0123

56
89
`, ); editor.deleteText(2, 4); expect(editor.getDelta()).toEqual( new Delta() .insert('016') .insert('\n', { 'code-block': true }) .insert('89') .insert('\n', { 'code-block': true }), ); expect(editor.scroll.domNode.innerHTML).toEqualHTML(`
016
89
`); }); it('replace', function() { const editor = this.initialize( Editor, '
0123
', ); editor.formatText(4, 1, { header: 1 }); expect(editor.getDelta()).toEqual( new Delta().insert('0123').insert('\n', { header: 1 }), ); expect(editor.scroll.domNode).toEqualHTML('

0123

'); }); it('replace multiple', function() { const editor = this.initialize( Editor, `
01
23
`, ); editor.formatText(0, 6, { header: 1 }); expect(editor.getDelta()).toEqual( new Delta() .insert('01') .insert('\n', { header: 1 }) .insert('23') .insert('\n', { header: 1 }), ); expect(editor.scroll.domNode).toEqualHTML('

01

23

'); }); it('format imprecise bounds', function() { const editor = this.initialize( Editor, `
01
23
45
`, ); editor.formatText(1, 6, { header: 1 }); expect(editor.getDelta()).toEqual( new Delta() .insert('01') .insert('\n', { header: 1 }) .insert('23') .insert('\n', { header: 1 }) .insert('45') .insert('\n', { 'code-block': true }), ); expect(editor.scroll.domNode.innerHTML).toEqualHTML( '

01

23

45
', ); }); it('format without newline', function() { const editor = this.initialize( Editor, `
01
23
45
`, ); editor.formatText(3, 1, { header: 1 }); expect(editor.getDelta()).toEqual( new Delta() .insert('01') .insert('\n', { 'code-block': true }) .insert('23') .insert('\n', { 'code-block': true }) .insert('45') .insert('\n', { 'code-block': true }), ); expect(editor.scroll.domNode.innerHTML).toEqualHTML(`
01
23
45
`); }); it('format line', function() { const editor = this.initialize( Editor, `
01
23
45
`, ); editor.formatLine(3, 1, { header: 1 }); expect(editor.getDelta()).toEqual( new Delta() .insert('01') .insert('\n', { 'code-block': true }) .insert('23') .insert('\n', { header: 1 }) .insert('45') .insert('\n', { 'code-block': true }), ); expect(editor.scroll.domNode.innerHTML).toEqualHTML(`
01

23

45
`); }); it('ignore formatAt', function() { const editor = this.initialize( Editor, '
0123
', ); editor.formatText(1, 1, { bold: true }); expect(editor.getDelta()).toEqual( new Delta().insert('0123').insert('\n', { 'code-block': true }), ); expect(editor.scroll.domNode).toEqualHTML( '
0123
', ); }); it('partial block modification applyDelta', function() { const editor = this.initialize( Editor, `
a
b

`, ); const delta = new Delta() .retain(3) .insert('\n', { 'code-block': true }) .delete(1) .retain(1, { 'code-block': null }); editor.applyDelta(delta); expect(editor.scroll.domNode.innerHTML).toEqualHTML( `
a
b


`, ); }); });