import { expect, it } from 'bun:test'; import { segmentize } from './index.js'; it('does utf8 slicing', () => { expect( segmentize('oneπŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§ twoπŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§ threeπŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§ ', [ { index: { byteStart: 0, byteEnd: 28 }, features: [{ $type: 'app.bsky.richtext.facet#tag', tag: '' }], }, { index: { byteStart: 29, byteEnd: 57 }, features: [{ $type: 'app.bsky.richtext.facet#tag', tag: '' }], }, { index: { byteStart: 58, byteEnd: 88 }, features: [{ $type: 'app.bsky.richtext.facet#tag', tag: '' }], }, ]), ).toEqual([ { text: 'oneπŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§', features: [{ $type: 'app.bsky.richtext.facet#tag', tag: '' }], }, { text: ' ', features: undefined, }, { text: 'twoπŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§', features: [{ $type: 'app.bsky.richtext.facet#tag', tag: '' }], }, { text: ' ', features: undefined, }, { text: 'threeπŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§', features: [{ $type: 'app.bsky.richtext.facet#tag', tag: '' }], }, { text: ' ', features: undefined, }, ]); }); it('does not allow end { expect( segmentize('abcd', [ { index: { byteEnd: 2, byteStart: 4 }, features: [{ $type: 'app.bsky.richtext.facet#tag', tag: '' }], }, ]), ).toEqual([ { text: 'abcd', features: undefined, }, ]); });