Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

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

at 999e52ed2d5a2c8b2f7b8747dfcfd0e2017e5eb0 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})