UNPKG

@livekit/components-core

Version:

This package is a wrapper around the [livekit/client-sdk-js](https://github.com/livekit/client-sdk-js) package. It transforms the event based logic into simple to use observable state and component level APIs. This package is the core for all framework sp

66 lines (59 loc) 2.14 kB
import { describe, test } from 'vitest'; import { createEmailRegExp } from './emailRegex'; const fixtures = [ 'livekit@gmail.com', 'foo@bar', 'test@about.museum', 'test@nominet.org.uk', 'test.test@livekit.io', 'test@255.255.255.255', 'a@livekit.io', 'test@e.com', 'test@xn--hxajbheg2az3al.xn--jxalpdlp', 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@livekit.io', '!#$%&`*+/=?^`{|}~@livekit.io', 'test@g--a.com', 'a@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.hij', '123@livekit.io', '"\\a"@livekit.io', '""@livekit.io', '"test"@livekit.io', '"\\""@livekit.io', 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklmn@livekit.io', 'test@iana.co-uk', 'a@a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v', 'test@foo-bar.com', 'foo@x.solutions', 'foo@[IPv6:2001:db8::2]', ]; const fixturesNot = [ '@', '@io', '@livekit.io', 'test..livekit.io', 'test@iana..com', 'test@livekit.io.', '.test@livekit.io', 'livekit@livekit@livekit.com', 'mailto:livekit@gmail.com', 'foo.example.com', 'test.@example.com', ]; describe('Email regex tests', () => { test('extract', (t) => { for (const fixture of fixtures) { t.expect((createEmailRegExp().exec(`foo ${fixture} bar`) || [])[0]).toBe(fixture); } t.expect(createEmailRegExp().exec('mailto:livekit@gmail.com')?.[0]).toBe('livekit@gmail.com'); }); test('exact', (t) => { for (const fixture of fixtures) { t.expect(createEmailRegExp({ exact: true }).test(fixture)).toBeTruthy(); } }); test('failures', (t) => { for (const fixture of fixturesNot) { t.expect(createEmailRegExp({ exact: true }).test(fixture)).toBeFalsy(); } }); });