|
1 | 1 | import {next} from 'sonic-forest/lib/util'; |
2 | | -import {Kit, setupHelloWorldKit, setupHelloWorldWithFewEditsKit, setupNumbersKit, setupNumbersWithTombstonesKit} from '../../__tests__/setup'; |
| 2 | +import {Kit, setupHelloWorldKit, setupHelloWorldWithFewEditsKit} from '../../__tests__/setup'; |
3 | 3 | import {Anchor} from '../../rga/constants'; |
4 | 4 | import {MarkerOverlayPoint} from '../MarkerOverlayPoint'; |
5 | 5 | import {OverlayPoint} from '../OverlayPoint'; |
6 | 6 |
|
7 | 7 | const runPairsTests = (setup: () => Kit) => { |
8 | | - describe('.tuples()', () => { |
| 8 | + describe('.tuples() full range', () => { |
9 | 9 | test('returns [START, END] single tuple for an empty overlay', () => { |
10 | 10 | const {peritext} = setup(); |
11 | 11 | const overlay = peritext.overlay; |
@@ -130,6 +130,34 @@ const runPairsTests = (setup: () => Kit) => { |
130 | 130 | expect(p3.refs.length).toBe(2); |
131 | 131 | }); |
132 | 132 | }); |
| 133 | + |
| 134 | + describe('.tuples() at offset', () => { |
| 135 | + test('in empty overlay, after caret returns the last edge', () => { |
| 136 | + const {peritext} = setup(); |
| 137 | + const overlay = peritext.overlay; |
| 138 | + peritext.editor.cursor.setAt(5); |
| 139 | + overlay.refresh(); |
| 140 | + const first = overlay.first()!; |
| 141 | + const pairs = [...overlay.tuples(first)]; |
| 142 | + expect(pairs).toEqual([ |
| 143 | + [first, overlay.END], |
| 144 | + ]); |
| 145 | + }); |
| 146 | + |
| 147 | + test('in empty overlay, after selection start returns the selection and the edge', () => { |
| 148 | + const {peritext} = setup(); |
| 149 | + const overlay = peritext.overlay; |
| 150 | + peritext.editor.cursor.setAt(2, 4); |
| 151 | + overlay.refresh(); |
| 152 | + const p1 = overlay.first()!; |
| 153 | + const p2 = next(p1)!; |
| 154 | + const list = [...overlay.tuples(p1)]; |
| 155 | + expect(list).toEqual([ |
| 156 | + [p1, p2], |
| 157 | + [p2, overlay.END], |
| 158 | + ]); |
| 159 | + }); |
| 160 | + }); |
133 | 161 | }; |
134 | 162 |
|
135 | 163 | describe('numbers "hello world", no edits', () => { |
|
0 commit comments