mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at rnw 123 lines 4.0 kB view raw
1import {RichText} from '../../../src/lib/strings/rich-text' 2 3describe('richText.insert', () => { 4 const input = new RichText('hello world', [ 5 {index: {start: 2, end: 7}, type: '', value: ''}, 6 ]) 7 8 it('correctly adjusts entities (scenario A - before)', () => { 9 const output = input.clone().insert(0, 'test') 10 expect(output.text).toEqual('testhello world') 11 expect(output.entities?.[0].index.start).toEqual(6) 12 expect(output.entities?.[0].index.end).toEqual(11) 13 expect( 14 output.text.slice( 15 output.entities?.[0].index.start, 16 output.entities?.[0].index.end, 17 ), 18 ).toEqual('llo w') 19 }) 20 21 it('correctly adjusts entities (scenario B - inner)', () => { 22 const output = input.clone().insert(4, 'test') 23 expect(output.text).toEqual('helltesto world') 24 expect(output.entities?.[0].index.start).toEqual(2) 25 expect(output.entities?.[0].index.end).toEqual(11) 26 expect( 27 output.text.slice( 28 output.entities?.[0].index.start, 29 output.entities?.[0].index.end, 30 ), 31 ).toEqual('lltesto w') 32 }) 33 34 it('correctly adjusts entities (scenario C - after)', () => { 35 const output = input.clone().insert(8, 'test') 36 expect(output.text).toEqual('hello wotestrld') 37 expect(output.entities?.[0].index.start).toEqual(2) 38 expect(output.entities?.[0].index.end).toEqual(7) 39 expect( 40 output.text.slice( 41 output.entities?.[0].index.start, 42 output.entities?.[0].index.end, 43 ), 44 ).toEqual('llo w') 45 }) 46}) 47 48describe('richText.delete', () => { 49 const input = new RichText('hello world', [ 50 {index: {start: 2, end: 7}, type: '', value: ''}, 51 ]) 52 53 it('correctly adjusts entities (scenario A - entirely outer)', () => { 54 const output = input.clone().delete(0, 9) 55 expect(output.text).toEqual('ld') 56 expect(output.entities?.length).toEqual(0) 57 }) 58 59 it('correctly adjusts entities (scenario B - entirely after)', () => { 60 const output = input.clone().delete(7, 11) 61 expect(output.text).toEqual('hello w') 62 expect(output.entities?.[0].index.start).toEqual(2) 63 expect(output.entities?.[0].index.end).toEqual(7) 64 expect( 65 output.text.slice( 66 output.entities?.[0].index.start, 67 output.entities?.[0].index.end, 68 ), 69 ).toEqual('llo w') 70 }) 71 72 it('correctly adjusts entities (scenario C - partially after)', () => { 73 const output = input.clone().delete(4, 11) 74 expect(output.text).toEqual('hell') 75 expect(output.entities?.[0].index.start).toEqual(2) 76 expect(output.entities?.[0].index.end).toEqual(4) 77 expect( 78 output.text.slice( 79 output.entities?.[0].index.start, 80 output.entities?.[0].index.end, 81 ), 82 ).toEqual('ll') 83 }) 84 85 it('correctly adjusts entities (scenario D - entirely inner)', () => { 86 const output = input.clone().delete(3, 5) 87 expect(output.text).toEqual('hel world') 88 expect(output.entities?.[0].index.start).toEqual(2) 89 expect(output.entities?.[0].index.end).toEqual(5) 90 expect( 91 output.text.slice( 92 output.entities?.[0].index.start, 93 output.entities?.[0].index.end, 94 ), 95 ).toEqual('l w') 96 }) 97 98 it('correctly adjusts entities (scenario E - partially before)', () => { 99 const output = input.clone().delete(1, 5) 100 expect(output.text).toEqual('h world') 101 expect(output.entities?.[0].index.start).toEqual(1) 102 expect(output.entities?.[0].index.end).toEqual(3) 103 expect( 104 output.text.slice( 105 output.entities?.[0].index.start, 106 output.entities?.[0].index.end, 107 ), 108 ).toEqual(' w') 109 }) 110 111 it('correctly adjusts entities (scenario F - entirely before)', () => { 112 const output = input.clone().delete(0, 2) 113 expect(output.text).toEqual('llo world') 114 expect(output.entities?.[0].index.start).toEqual(0) 115 expect(output.entities?.[0].index.end).toEqual(5) 116 expect( 117 output.text.slice( 118 output.entities?.[0].index.start, 119 output.entities?.[0].index.end, 120 ), 121 ).toEqual('llo w') 122 }) 123})