const validateForm  = require('./регистрация1.js');

test('отсутствует имя', () => {
    const name = '';
    const phone = '+79092970715';
    const email = 'damir@example.com';
    const code = "123456";
    const password = 'password123';
  
    const result = validateForm(name, phone, email, code, password);
    expect(result).toBe(false);
  });

test('неверный формат телефона', () => {
    const name = 'Газизов Дамир Рамилевич';
    const phone = '89092970715'; // Неверный формат
    const email = 'damir@example.com';
    const code = "123456";
    const password = 'password123';
  
    const result = validateForm(name, phone, email, code, password);
    expect(result).toBe(false);
  });

test('неверный формат email', () => {
    const name = 'Газизов Дамир Рамилевич';
    const phone = '+79092970715';
    const email = 'damir@example'; // Неверный формат
    const code = "123456";
    const password = 'password123';
  
    const result = validateForm(name, phone, email, code, password);
    expect(result).toBe(false);
  });

test('отсутствует код', () => {
    const name = 'Газизов Дамир Рамилевич';
    const phone = '+79092970715';
    const email = 'damir@example.com';
    const code = ""; 
    const password = 'password123';
  
    const result = validateForm(name, phone, email, code, password);
    expect(result).toBe(false);
  });

const { toggleFAQSection, initFAQ } = require('./структура1.js');
// Тесты для FAQ
test('toggleFAQSection: открывает и закрывает секцию', () => {
});

test('initFAQ: добавляет обработчик клика на заголовки', () => {
});

// scroll.test.js
const { scrollFunction, scrollToTop, initScroll } = require('./скроллинг1.js');

// Моки для DOM-элементов
const mockHomeSection = {
  // ... (могут быть добавлены свойства для проверки, если нужно)
};
const mockScrollTopBtn = {
  style: {
    display: ''
  }
};

const mockWindow = {
  pageYOffset: 0,
  scrollTo: jest.fn() 
};

// Заменяем `window` и `document.getElementById` на наши моки
global.window = mockWindow;
global.document = {
  getElementById: jest.fn((id) => {
    if (id === 'home') {
      return mockHomeSection;
    } else if (id === 'scrollTopBtn') {
      return mockScrollTopBtn;
    }
  })
};

test('scrollFunction: отображает кнопку "Вверх", если прокрутка больше 200 пикселей', () => {
  mockWindow.pageYOffset = 201; 
  scrollFunction(mockHomeSection, mockScrollTopBtn);
  expect(mockScrollTopBtn.style.display).toBe('block');
});

test('scrollFunction: скрывает кнопку "Вверх", если прокрутка меньше 200 пикселей', () => {
  mockWindow.pageYOffset = 199; 
  scrollFunction(mockHomeSection, mockScrollTopBtn);
  expect(mockScrollTopBtn.style.display).toBe('none');
});


const { showPopup, closePopup } = require('./сотрудники1.js');

// Моки для DOM-элементов
const mockPopupElement = {
  style: {
    display: ''
  }
};

// Заменяем document.getElementById на наш мок
global.document = {
  getElementById: jest.fn(() => mockPopupElement)
};

describe('showPopup', () => {
  test('устанавливает стиль отображения попапа на "block"', () => {
    showPopup('popupId');
    expect(document.getElementById).toHaveBeenCalledWith('popupId');
    expect(mockPopupElement.style.display).toBe('block');
  });
});

describe('closePopup', () => {
  test('устанавливает стиль отображения попапа на "none"', () => {
    closePopup('popupId');
    expect(document.getElementById).toHaveBeenCalledWith('popupId');
    expect(mockPopupElement.style.display).toBe('none');
  });

});


