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 ruby-v 84 lines 3.2 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 ] 36 37 it.each(cases)( 38 'given input string %p and cursor position %p, returns %p', 39 (str, cursorPos, expected) => { 40 const output = getMentionAt(str, cursorPos) 41 expect(output?.value).toEqual(expected) 42 }, 43 ) 44}) 45 46describe('insertMentionAt', () => { 47 type Case = [string, number, string] 48 const cases: Case[] = [ 49 ['hello @alice goodbye', 0, 'hello @alice goodbye'], 50 ['hello @alice goodbye', 1, 'hello @alice goodbye'], 51 ['hello @alice goodbye', 2, 'hello @alice goodbye'], 52 ['hello @alice goodbye', 3, 'hello @alice goodbye'], 53 ['hello @alice goodbye', 4, 'hello @alice goodbye'], 54 ['hello @alice goodbye', 5, 'hello @alice goodbye'], 55 ['hello @alice goodbye', 6, 'hello @alice.com goodbye'], 56 ['hello @alice goodbye', 7, 'hello @alice.com goodbye'], 57 ['hello @alice goodbye', 8, 'hello @alice.com goodbye'], 58 ['hello @alice goodbye', 9, 'hello @alice.com goodbye'], 59 ['hello @alice goodbye', 10, 'hello @alice.com goodbye'], 60 ['hello @alice goodbye', 11, 'hello @alice.com goodbye'], 61 ['hello @alice goodbye', 12, 'hello @alice.com goodbye'], 62 ['hello @alice goodbye', 13, 'hello @alice goodbye'], 63 ['hello @alice goodbye', 14, 'hello @alice goodbye'], 64 ['@alice', 0, '@alice.com '], 65 ['@alice hello', 0, '@alice.com hello'], 66 ['@alice hello', 1, '@alice.com hello'], 67 ['@alice hello', 2, '@alice.com hello'], 68 ['@alice hello', 3, '@alice.com hello'], 69 ['@alice hello', 4, '@alice.com hello'], 70 ['@alice hello', 5, '@alice.com hello'], 71 ['@alice hello', 6, '@alice.com hello'], 72 ['@alice hello', 7, '@alice hello'], 73 ['alice@alice', 0, 'alice@alice'], 74 ['alice@alice', 6, 'alice@alice'], 75 ] 76 77 it.each(cases)( 78 'given input string %p and cursor position %p, returns %p', 79 (str, cursorPos, expected) => { 80 const output = insertMentionAt(str, cursorPos, 'alice.com') 81 expect(output).toEqual(expected) 82 }, 83 ) 84})