@@ -5,7 +5,7 @@ import {MarkerOverlayPoint} from '../MarkerOverlayPoint';
55import { OverlayPoint } from '../OverlayPoint' ;
66
77const runPairsTests = ( setup : ( ) => Kit ) => {
8- describe ( '.pairs()' , ( ) => {
8+ describe ( '.pairs() full range ' , ( ) => {
99 test ( 'returns [undef, undef] single pair for an empty overlay' , ( ) => {
1010 const { peritext} = setup ( ) ;
1111 const overlay = peritext . overlay ;
@@ -133,6 +133,34 @@ const runPairsTests = (setup: () => Kit) => {
133133 expect ( p3 . refs . length ) . toBe ( 2 ) ;
134134 } ) ;
135135 } ) ;
136+
137+ describe ( '.pairs() at offset' , ( ) => {
138+ test ( 'in empty overlay, after caret returns the last edge' , ( ) => {
139+ const { peritext} = setup ( ) ;
140+ const overlay = peritext . overlay ;
141+ peritext . editor . cursor . setAt ( 5 ) ;
142+ overlay . refresh ( ) ;
143+ const first = overlay . first ( ) ! ;
144+ const pairs = [ ...overlay . pairs ( first ) ] ;
145+ expect ( pairs ) . toEqual ( [
146+ [ first , undefined ] ,
147+ ] ) ;
148+ } ) ;
149+
150+ test ( 'in empty overlay, after selection start returns the selection and the edge' , ( ) => {
151+ const { peritext} = setup ( ) ;
152+ const overlay = peritext . overlay ;
153+ peritext . editor . cursor . setAt ( 2 , 4 ) ;
154+ overlay . refresh ( ) ;
155+ const p1 = overlay . first ( ) ! ;
156+ const p2 = next ( p1 ) ! ;
157+ const list = [ ...overlay . pairs ( p1 ) ] ;
158+ expect ( list ) . toEqual ( [
159+ [ p1 , p2 ] ,
160+ [ p2 , undefined ] ,
161+ ] ) ;
162+ } ) ;
163+ } ) ;
136164} ;
137165
138166describe ( 'numbers "0123456789", no edits' , ( ) => {
0 commit comments