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 postgen 86 lines 3.3 kB view raw
1import { 2 getMentionAt, 3 insertMentionAt, 4} from '../../../src/lib/strings/mention-manip' 5 6describe('getMentionAt', () => { 7 type Case = [string, number, string | undefined] 8 const cases: Case[] = [ 9 ['hello @alice goodbye', 0, undefined], 10 ['hello @alice goodbye', 1, undefined], 11 ['hello @alice goodbye', 2, undefined], 12 ['hello @alice goodbye', 3, undefined], 13 ['hello @alice goodbye', 4, undefined], 14 ['hello @alice goodbye', 5, undefined], 15 ['hello @alice goodbye', 6, 'alice'], 16 ['hello @alice goodbye', 7, 'alice'], 17 ['hello @alice goodbye', 8, 'alice'], 18 ['hello @alice goodbye', 9, 'alice'], 19 ['hello @alice goodbye', 10, 'alice'], 20 ['hello @alice goodbye', 11, 'alice'], 21 ['hello @alice goodbye', 12, 'alice'], 22 ['hello @alice goodbye', 13, undefined], 23 ['hello @alice goodbye', 14, undefined], 24 ['@alice', 0, 'alice'], 25 ['@alice hello', 0, 'alice'], 26 ['@alice hello', 1, 'alice'], 27 ['@alice hello', 2, 'alice'], 28 ['@alice hello', 3, 'alice'], 29 ['@alice hello', 4, 'alice'], 30 ['@alice hello', 5, 'alice'], 31 ['@alice hello', 6, 'alice'], 32 ['@alice hello', 7, undefined], 33 ['alice@alice', 0, undefined], 34 ['alice@alice', 6, undefined], 35 ['hello @alice-com goodbye', 8, 'alice-com'], 36 ] 37 38 it.each(cases)( 39 'given input string %p and cursor position %p, returns %p', 40 (str, cursorPos, expected) => { 41 const output = getMentionAt(str, cursorPos) 42 expect(output?.value).toEqual(expected) 43 }, 44 ) 45}) 46 47describe('insertMentionAt', () => { 48 type Case = [string, number, string] 49 const cases: Case[] = [ 50 ['hello @alice goodbye', 0, 'hello @alice goodbye'], 51 ['hello @alice goodbye', 1, 'hello @alice goodbye'], 52 ['hello @alice goodbye', 2, 'hello @alice goodbye'], 53 ['hello @alice goodbye', 3, 'hello @alice goodbye'], 54 ['hello @alice goodbye', 4, 'hello @alice goodbye'], 55 ['hello @alice goodbye', 5, 'hello @alice goodbye'], 56 ['hello @alice goodbye', 6, 'hello @alice.com goodbye'], 57 ['hello @alice goodbye', 7, 'hello @alice.com goodbye'], 58 ['hello @alice goodbye', 8, 'hello @alice.com goodbye'], 59 ['hello @alice goodbye', 9, 'hello @alice.com goodbye'], 60 ['hello @alice goodbye', 10, 'hello @alice.com goodbye'], 61 ['hello @alice goodbye', 11, 'hello @alice.com goodbye'], 62 ['hello @alice goodbye', 12, 'hello @alice.com goodbye'], 63 ['hello @alice goodbye', 13, 'hello @alice goodbye'], 64 ['hello @alice goodbye', 14, 'hello @alice goodbye'], 65 ['@alice', 0, '@alice.com '], 66 ['@alice hello', 0, '@alice.com hello'], 67 ['@alice hello', 1, '@alice.com hello'], 68 ['@alice hello', 2, '@alice.com hello'], 69 ['@alice hello', 3, '@alice.com hello'], 70 ['@alice hello', 4, '@alice.com hello'], 71 ['@alice hello', 5, '@alice.com hello'], 72 ['@alice hello', 6, '@alice.com hello'], 73 ['@alice hello', 7, '@alice hello'], 74 ['alice@alice', 0, 'alice@alice'], 75 ['alice@alice', 6, 'alice@alice'], 76 ['hello @alice-com goodbye', 10, 'hello @alice.com goodbye'], 77 ] 78 79 it.each(cases)( 80 'given input string %p and cursor position %p, returns %p', 81 (str, cursorPos, expected) => { 82 const output = insertMentionAt(str, cursorPos, 'alice.com') 83 expect(output).toEqual(expected) 84 }, 85 ) 86})