import { IsOptionalContactPhoneConstraint } from './optional-contact-phone.validator';

describe('IsOptionalContactPhoneConstraint', () => {
  const v = new IsOptionalContactPhoneConstraint();

  it('accepts empty and whitespace', () => {
    expect(v.validate('')).toBe(true);
    expect(v.validate('   ')).toBe(true);
    expect(v.validate(null)).toBe(true);
    expect(v.validate(undefined)).toBe(true);
  });

  it('accepts valid mobiles', () => {
    expect(v.validate('9779212232')).toBe(true);
    expect(v.validate('+91 97792 12232')).toBe(true);
  });

  it('rejects too few digits and bad characters', () => {
    expect(v.validate('12345')).toBe(false);
    expect(v.validate('abc9779212232')).toBe(false);
  });
});
