delete.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { Client, syncClients, expectClients, clearBuffer } from './utils.js';
  2. describe( 'transform', () => {
  3. let john, kate;
  4. beforeEach( () => {
  5. return Promise.all( [
  6. Client.get( 'john' ).then( client => ( john = client ) ),
  7. Client.get( 'kate' ).then( client => ( kate = client ) )
  8. ] );
  9. } );
  10. afterEach( () => {
  11. clearBuffer();
  12. return Promise.all( [ john.destroy(), kate.destroy() ] );
  13. } );
  14. describe( 'delete', () => {
  15. describe( 'by delete', () => {
  16. it( 'text from two elements', () => {
  17. john.setData( '<paragraph>F[oo</paragraph><paragraph>B]ar</paragraph>' );
  18. kate.setData( '<paragraph>Fo[o</paragraph><paragraph>Ba]r</paragraph>' );
  19. john.delete();
  20. kate.delete();
  21. syncClients();
  22. expectClients( '<paragraph>Fr</paragraph>' );
  23. } );
  24. it( 'text from three elements', () => {
  25. john.setData( '<paragraph>Foo</paragraph><paragraph>Ba[r</paragraph><paragraph>A]bc</paragraph>' );
  26. kate.setData( '<paragraph>Fo[o</paragraph><paragraph>Ba]r</paragraph><paragraph>Abc</paragraph>' );
  27. john.delete();
  28. kate.delete();
  29. syncClients();
  30. expectClients( '<paragraph>Fobc</paragraph>' );
  31. } );
  32. // https://github.com/ckeditor/ckeditor5-engine/issues/1492
  33. it( 'delete same content from a few elements', () => {
  34. john.setData( '<paragraph>F[oo</paragraph><paragraph>Bar</paragraph><paragraph>Ab]c</paragraph>' );
  35. kate.setData( '<paragraph>F[oo</paragraph><paragraph>Bar</paragraph><paragraph>Ab]c</paragraph>' );
  36. john.delete();
  37. kate.delete();
  38. syncClients();
  39. expectClients( '<paragraph>Fc</paragraph>' );
  40. john.undo();
  41. kate.undo();
  42. syncClients();
  43. expectClients( '<paragraph>Foo</paragraph><paragraph>Bar</paragraph><paragraph>Abc</paragraph>' );
  44. } );
  45. } );
  46. } );
  47. } );