Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

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

at 6bfe758d2a9ea376552fb45e5e589bccd0cf4df5 82 lines 1.8 kB view raw
1import {describe, expect, it} from '@jest/globals' 2import tldts from 'tldts' 3 4import {isEmailMaybeInvalid} from '#/lib/strings/email' 5 6describe('emailTypoChecker', () => { 7 const invalidCases = [ 8 'gnail.com', 9 'gnail.co', 10 'gmaill.com', 11 'gmaill.co', 12 'gmai.com', 13 'gmai.co', 14 'gmal.com', 15 'gmal.co', 16 'gmail.co', 17 'iclod.com', 18 'iclod.co', 19 'outllok.com', 20 'outllok.co', 21 'outlook.co', 22 'yaoo.com', 23 'yaoo.co', 24 'yaho.com', 25 'yaho.co', 26 'yahooo.com', 27 'yahooo.co', 28 'yahoo.co', 29 'hithere.jul', 30 'agpowj.notshop', 31 'thisisnot.avalid.tld.nope', 32 // old tld for czechoslovakia 33 'czechoslovakia.cs', 34 // tlds that cbs was registering in 2024 but cancelled 35 'liveon.cbs', 36 'its.showtime', 37 ] 38 const validCases = [ 39 'gmail.com', 40 // subdomains (tests end of string) 41 'gnail.com.test.com', 42 'outlook.com', 43 'yahoo.com', 44 'icloud.com', 45 'firefox.com', 46 'firefox.co', 47 'hello.world.com', 48 'buy.me.a.coffee.shop', 49 'mayotte.yt', 50 'aland.ax', 51 'bouvet.bv', 52 'uk.gb', 53 'chad.td', 54 'somalia.so', 55 'plane.aero', 56 'cute.cat', 57 'together.coop', 58 'findme.jobs', 59 'nightatthe.museum', 60 'industrial.mil', 61 'czechrepublic.cz', 62 'lovakia.sk', 63 // new gtlds in 2024 64 'whatsinyour.locker', 65 'letsmakea.deal', 66 'skeet.now', 67 'everyone.みんな', 68 'bourgeois.lifestyle', 69 'california.living', 70 'skeet.ing', 71 'listeningto.music', 72 'createa.meme', 73 ] 74 75 it.each(invalidCases)(`should be invalid: abcde@%s`, domain => { 76 expect(isEmailMaybeInvalid(`abcde@${domain}`, tldts)).toEqual(true) 77 }) 78 79 it.each(validCases)(`should be valid: abcde@%s`, domain => { 80 expect(isEmailMaybeInvalid(`abcde@${domain}`, tldts)).toEqual(false) 81 }) 82})