gdbots/common-js

View on GitHub
tests/isValidEmail.test.js

Summary

Maintainability
A
0 mins
Test Coverage
import test from 'tape';
import isValidEmail from '../src/isValidEmail';

test('isValidEmail tests', (assert) => {
  const valid = [
    'foo@bar.com',
    'bar.ba@test.co.uk',
    'foo-12345@bar.com',
    'foo+bar@bar.com',
    '"email"@domain.com',
    'email@[123.123.123.123]',
    'user@[2001:DB8::1]',
    'foo_12345@bar-dash.com',
    '_______@domain.com',
    '123@123.net',
  ];

  valid.forEach(email => assert.equal(isValidEmail(email), true, `email [${email}] should be valid.`));

  const invalid = [
    null,
    ' ',
    '\t',
    '#@%^%#$@#$@#.com',
    'foo@bar',
    'fo@o@bar',
    ' example@domain.com',
    '@domain.com',
    'Joe Smith <email@domain.com>',
    'foo@ba$r.com',
    'email@123.123.123.123',
    'foo@[bar].com',
    'email@[123.123.123.300]',
    'email@[123.123.123.123',
    'user@[192:168:1:1]',
    'user@[2001:DB8:1]',
    'email@domain..com',
    'foo.bar.baz',
  ];

  invalid.forEach(email => assert.equal(isValidEmail(email), false, `email [${email}] should NOT be valid.`));

  assert.end();
});