@@ -648,10 +648,20 @@ describe "TextBuffer", ->
648
648
buffer .setTextInRange ([[1 , 0 ], [1 , 2 ]], ' yz' )
649
649
650
650
expect (buffer .getText ()).toBe ' abc\n yzf\n ghi\n jkl\n mno\n pqr\n stu\n vwx\n '
651
- expect (buffer .getChangesSinceCheckpoint (checkpoint)).toEqual [
652
- {start : [1 , 0 ], oldExtent : [0 , 2 ], newExtent : [0 , 2 ], oldText : ' de' , newText : ' yz' },
653
- {start : [5 , 0 ], oldExtent : [0 , 0 ], newExtent : [3 , 0 ], oldText : ' ' , newText : ' pqr\n stu\n vwx\n ' }
654
- ]
651
+ assertChangesEqual (buffer .getChangesSinceCheckpoint (checkpoint), [
652
+ {
653
+ oldRange : [[1 , 0 ], [1 , 2 ]],
654
+ newRange : [[1 , 0 ], [1 , 2 ]],
655
+ oldText : " de" ,
656
+ newText : " yz" ,
657
+ },
658
+ {
659
+ oldRange : [[5 , 0 ], [5 , 0 ]],
660
+ newRange : [[5 , 0 ], [8 , 0 ]],
661
+ oldText : " " ,
662
+ newText : " pqr\n stu\n vwx\n " ,
663
+ }
664
+ ])
655
665
656
666
it " returns an empty list of changes when no change has been made since the checkpoint" , ->
657
667
checkpoint = buffer .createCheckpoint ()
@@ -2618,18 +2628,16 @@ describe "TextBuffer", ->
2618
2628
2619
2629
buffer .insert ([0 , 0 ], " abc" )
2620
2630
buffer .delete ([[0 , 0 ], [0 , 1 ]])
2621
- expect (textChanges). toEqual ( [
2631
+ assertChangesEqual (textChanges, [
2622
2632
{
2623
- start : {row : 0 , column : 0 },
2624
- oldExtent : {row : 0 , column : 0 },
2625
- newExtent : {row : 0 , column : 3 },
2633
+ oldRange : [[0 , 0 ], [0 , 0 ]],
2634
+ newRange : [[0 , 0 ], [0 , 3 ]]
2626
2635
oldText : " " ,
2627
2636
newText : " abc"
2628
2637
},
2629
2638
{
2630
- start : {row : 0 , column : 0 },
2631
- oldExtent : {row : 0 , column : 1 },
2632
- newExtent : {row : 0 , column : 0 },
2639
+ oldRange : [[0 , 0 ], [0 , 1 ]],
2640
+ newRange : [[0 , 0 ], [0 , 0 ]],
2633
2641
oldText : " a" ,
2634
2642
newText : " "
2635
2643
}
@@ -2642,58 +2650,53 @@ describe "TextBuffer", ->
2642
2650
buffer .insert ([2 , 3 ], " zw" )
2643
2651
buffer .delete ([[2 , 3 ], [2 , 4 ]])
2644
2652
2645
- expect (textChanges).toEqual ([
2653
+
2654
+ assertChangesEqual (textChanges, [
2646
2655
{
2647
- start : {row : 1 , column : 0 },
2648
- oldExtent : {row : 0 , column : 0 },
2649
- newExtent : {row : 0 , column : 2 },
2656
+ oldRange : [[1 , 0 ], [1 , 0 ]],
2657
+ newRange : [[1 , 0 ], [1 , 2 ]],
2650
2658
oldText : " " ,
2651
- newText : " xy"
2659
+ newText : " xy" ,
2652
2660
},
2653
2661
{
2654
- start : {row : 2 , column : 3 },
2655
- oldExtent : {row : 0 , column : 0 },
2656
- newExtent : {row : 0 , column : 1 },
2662
+ oldRange : [[2 , 3 ], [2 , 3 ]],
2663
+ newRange : [[2 , 3 ], [2 , 4 ]],
2657
2664
oldText : " " ,
2658
- newText : " w"
2665
+ newText : " w" ,
2659
2666
}
2660
2667
])
2661
2668
2662
2669
textChanges = []
2663
2670
buffer .undo ()
2664
- expect (textChanges). toEqual ( [
2671
+ assertChangesEqual (textChanges, [
2665
2672
{
2666
- start : {row : 1 , column : 0 },
2667
- oldExtent : {row : 0 , column : 2 },
2668
- newExtent : {row : 0 , column : 0 },
2673
+ oldRange : [[1 , 0 ], [1 , 2 ]],
2674
+ newRange : [[1 , 0 ], [1 , 0 ]],
2669
2675
oldText : " xy" ,
2670
- newText : " "
2676
+ newText : " " ,
2671
2677
},
2672
2678
{
2673
- start : {row : 2 , column : 3 },
2674
- oldExtent : {row : 0 , column : 1 },
2675
- newExtent : {row : 0 , column : 0 },
2679
+ oldRange : [[2 , 3 ], [2 , 4 ]],
2680
+ newRange : [[2 , 3 ], [2 , 3 ]],
2676
2681
oldText : " w" ,
2677
- newText : " "
2682
+ newText : " " ,
2678
2683
}
2679
2684
])
2680
2685
2681
2686
textChanges = []
2682
2687
buffer .redo ()
2683
- expect (textChanges). toEqual ( [
2688
+ assertChangesEqual (textChanges, [
2684
2689
{
2685
- start : {row : 1 , column : 0 },
2686
- oldExtent : {row : 0 , column : 0 },
2687
- newExtent : {row : 0 , column : 2 },
2690
+ oldRange : [[1 , 0 ], [1 , 0 ]],
2691
+ newRange : [[1 , 0 ], [1 , 2 ]],
2688
2692
oldText : " " ,
2689
- newText : " xy"
2693
+ newText : " xy" ,
2690
2694
},
2691
2695
{
2692
- start : {row : 2 , column : 3 },
2693
- oldExtent : {row : 0 , column : 0 },
2694
- newExtent : {row : 0 , column : 1 },
2696
+ oldRange : [[2 , 3 ], [2 , 3 ]],
2697
+ newRange : [[2 , 3 ], [2 , 4 ]],
2695
2698
oldText : " " ,
2696
- newText : " w"
2699
+ newText : " w" ,
2697
2700
}
2698
2701
])
2699
2702
@@ -2703,13 +2706,12 @@ describe "TextBuffer", ->
2703
2706
buffer .insert ([0 , 0 ], " j" )
2704
2707
2705
2708
# we emit only one event for nested transactions
2706
- expect (textChanges). toEqual ( [
2709
+ assertChangesEqual (textChanges, [
2707
2710
{
2708
- start : {row : 0 , column : 0 },
2709
- oldExtent : {row : 0 , column : 0 },
2710
- newExtent : {row : 0 , column : 1 },
2711
+ oldRange : [[0 , 0 ], [0 , 0 ]],
2712
+ newRange : [[0 , 0 ], [0 , 1 ]],
2711
2713
oldText : " " ,
2712
- newText : " j"
2714
+ newText : " j" ,
2713
2715
}
2714
2716
])
2715
2717
@@ -2760,22 +2762,21 @@ describe "TextBuffer", ->
2760
2762
2761
2763
beforeEach (done ) ->
2762
2764
expect (didStopChangingCallback).toHaveBeenCalled ()
2763
- expect (didStopChangingCallback .calls .mostRecent ().args [0 ].changes ).toEqual [
2765
+
2766
+ assertChangesEqual (didStopChangingCallback .calls .mostRecent ().args [0 ].changes , [
2764
2767
{
2765
- start : {row : 0 , column : 0 },
2766
- oldExtent : {row : 0 , column : 0 },
2767
- newExtent : {row : 0 , column : 2 },
2768
- oldText : ' ' ,
2769
- newText : ' ba'
2768
+ oldRange : [[0 , 0 ], [0 , 0 ]],
2769
+ newRange : [[0 , 0 ], [0 , 2 ]],
2770
+ oldText : " " ,
2771
+ newText : " ba" ,
2770
2772
},
2771
2773
{
2772
- start : {row : 1 , column : 0 },
2773
- oldExtent : {row : 0 , column : 0 },
2774
- newExtent : {row : 0 , column : 1 },
2775
- oldText : ' ' ,
2776
- newText : ' c'
2777
- }
2778
- ]
2774
+ oldRange : [[1 , 0 ], [1 , 0 ]],
2775
+ newRange : [[1 , 0 ], [1 , 1 ]],
2776
+ oldText : " " ,
2777
+ newText : " c" ,
2778
+ },
2779
+ ])
2779
2780
2780
2781
didStopChangingCallback .calls .reset ()
2781
2782
buffer .undo ()
@@ -2955,3 +2956,12 @@ describe "TextBuffer", ->
2955
2956
it " does not push the encoding change onto the undo stack" , ->
2956
2957
buffer .undo ()
2957
2958
expect (buffer .getText ()).toBe ' тест 1234 абвгдеёжз'
2959
+
2960
+ assertChangesEqual = (actualChanges , expectedChanges ) ->
2961
+ expect (actualChanges .length ).toBe (expectedChanges .length )
2962
+ for actualChange, i in actualChanges
2963
+ expectedChange = expectedChanges[i]
2964
+ expect (actualChange .oldRange ).toEqual (expectedChange .oldRange )
2965
+ expect (actualChange .newRange ).toEqual (expectedChange .newRange )
2966
+ expect (actualChange .oldText ).toEqual (expectedChange .oldText )
2967
+ expect (actualChange .newText ).toEqual (expectedChange .newText )
0 commit comments