//2
const validateEmail = require('./function');

test('возвращает значение истина, если email корректный', () => {
  expect(validateEmail('example@example.com')).toBe(true);
});

test('возвращает значение ложь, если email некорректный', () => {
    expect(validateEmail('@example.com')).toBe(false);
  });

//2
const validatePhone = require('./phone');

test('возвращает значение истина, если телефон корректный', () => {
  expect(validatePhone('+1234567890')).toBe(true);
});

test('возвращает значение ложь, если телефон некорректный', () => {
    expect(validatePhone('+123456789a')).toBe(false);
  });

//2
const forms = require('./forms'); 

  test('все поля пароля заполнены правильно', () => {
    const oldPassword = 'kasi';
    const newPassword = '12345678';
    const repeatPassword = '12345678';
  
    const result = forms(oldPassword, newPassword, repeatPassword);
    expect(result).toBe(true);
  });

  test('новый и старый пароль не совпадают', () => {
    const oldPassword = 'kasi';
    const newPassword = 'kasatkina';
    const repeatPassword = 'wrongpassword';
  
    expect(() => forms(oldPassword, newPassword, repeatPassword)).toThrowError('Новый пароль и повторный пароль не совпадают!');
  });

//2
const forms2  = require('./forms2');

test('возвращает объект данных', () => {
  const name = 'Иван Иванов';
  const phone = '+79290390339';
  const date = '2024-03-15';
  
  const result = forms2(name, phone, date);
  expect(result).toEqual({ name, phone, date });
});

test('возвращает объект данных с другой формой телефона', () => {
    const name = 'Люда Проваленко';
    const phone = '79290434531';
    const date = '2024-07-05';
    
    const result = forms2(name, phone, date);
    expect(result).toEqual({ name, phone, date });
  });

//2
  const date = require('./date'); 

  test('введенная дата находится в прошлом', () => {
    const inputDate = '2023-12-31'; 
  
    expect(() => date(inputDate)).toThrowError("Дата должна быть больше или равна сегодняшней дате");
  });

  test('введенная дата в настоящем времени', () => {
    const inputDate = '2024-06-27'; 
  
    expect(() => date(inputDate)).toThrowError("Дата должна быть больше или равна сегодняшней дате");
  });