delete.js 1.7 KB

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