|
import {validateEmail} from './validateEmail'; |
|
|
|
// Assumes use of 'Jest' |
|
|
|
describe('Email', () => { |
|
it('validates correct email address', () => { |
|
const value = 'that.guy@gmail.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('invalidates incorrect email address', () => { |
|
const value = 'that.guy'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
describe('reported customer service user-cases:', () => { |
|
it('that.guy@foobar.mobi', () => { |
|
const value = 'that.guy@foobar.mobi'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('that.guy@foobar.info', () => { |
|
const value = 'that.guy@foobar.info'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('that.guy@foobar.name', () => { |
|
const value = 'that.guy@foobar.name'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('that.guy-@foobar.mobi', () => { |
|
const value = 'that.guy-@foobar.mobi'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('edvard@munch.museum', () => { |
|
const value = 'edvard@munch.museum'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
}); |
|
describe('edge user-cases (valid):', () => { |
|
it('edge-case--@foobar.com', () => { |
|
const value = 'edge-case--@foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('-edge-case@foobar.com', () => { |
|
const value = '-edge-case@foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('_edge-case@foobar.com', () => { |
|
const value = '_edge-case@foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('edge-case_@foobar.com', () => { |
|
const value = 'edge-case_@foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('eDgE-cAsE@fOobAr.cOm', () => { |
|
const value = 'eDgE-cAsE@fOobAr.cOm'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('edge-case@foo-bar.com', () => { |
|
const value = 'edge-case@foo-bar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('edge-case@foo_bar.com', () => { |
|
const value = 'edge-case@foo_bar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('edge-case.@foobar.com', () => { |
|
const value = 'edge-case.@foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('edge-case@_foobar.com', () => { |
|
const value = 'edge-case@_foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('edge-case@foobar_.com', () => { |
|
const value = 'edge-case@foobar_.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('e.d.g.e.c.a.s.e@foobar.com', () => { |
|
const value = 'e.d.g.e.c.a.s.e@foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('edge-case@foo.bar.com', () => { |
|
const value = 'edge-case@foo.bar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
it('e@foo.bar.com', () => { |
|
const value = 'e@foo.bar.com'; |
|
const result = util.validEmail(value); |
|
expect(result).toEqual(undefined); |
|
}); |
|
it('edge-case@fo.com', () => { |
|
const value = 'edge-case@fo.com'; |
|
const result = util.validEmail(value); |
|
expect(result).toEqual(undefined); |
|
}); |
|
it('longest valid email length (256)', () => { |
|
const value = 'if-you-just-knew-how-very-long-this-email-address-is-you-would-not-finish-this-sentence-but-again-its-all-a-matter-of-patience-and-if-you-keep-it-up-you-might-as-well-finish-reading-this-without-me-thinking-youre-kind-of-crazy-no-no-just-kidding@hahahah.no'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(true); |
|
}); |
|
}); |
|
describe('edge user-cases (invalid):', () => { |
|
it('invalid email length by one character too long (257)', () => { |
|
const value = 'if-you-just-knew-how-very-long-this-email-address-is-you-would-not-finish-this-sentence-but-again-its-all-a-matter-of-patience-and-if-you-keep-it-up-you-might-as-well-finish-reading-this-without-me-thinking-youre-kind-of-crazy-no-no-just-kidding@hahahaha.no'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('.edge-case@foobar.com', () => { |
|
const value = '.edge-case@foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('edge..case@foobar.com', () => { |
|
const value = 'edge..case@foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('edge.case@foo..bar.com', () => { |
|
const value = 'edge.case@foo..bar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('edge-case@foobar..com', () => { |
|
const value = 'edge-case@foobar..com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('edge-case@-foobar.com', () => { |
|
const value = 'edge-case@-foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('edge-case@foobar-.com', () => { |
|
const value = 'edge-case@foobar-.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('edge-case@.foobar.com', () => { |
|
const value = 'edge-case@.foobar.com'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('.@foobar.com', () => { |
|
const value = '.@foobar.com'; |
|
const result = util.validEmail(value); |
|
expect(result).toEqual(errorMsg); |
|
}); |
|
it('edge-case@f.com', () => { |
|
const value = 'edge-case@f.com'; |
|
const result = util.validEmail(value); |
|
expect(result).toEqual(errorMsg); |
|
}); |
|
it('edge-case@foobar.c2m', () => { |
|
const value = 'edge-case@foobar.c2m'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
it('edge-case@foobar.101', () => { |
|
const value = 'edge-case@foobar.101'; |
|
const result = validateEmail(value); |
|
expect(result).toEqual(false); |
|
}); |
|
}); |
|
}); |