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'); // Моки для DOM-элементов const mockSection = { querySelector: jest.fn((selector) => { switch (selector) { case '.faq-title': return { addEventListener: jest.fn((event, callback) => { if (event === 'click') { callback(); // Сразу вызываем callback при клике } }), }; case '.faq-questions': return { style: { display: 'none' }, }; case '.fas': return { classList: { toggle: jest.fn((className) => { if (className === 'fa-minus') { this.currentClass = className; } else { this.currentClass = 'fa-plus'; // Имитация начального состояния } }), contains: jest.fn(() => { return this.currentClass === 'fa-minus'; }), }, }; default: return null; } }), }; describe('toggleFAQSection', () => { test('скрывает вопросы, если они были показаны', () => { mockSection.querySelector.mockReturnValueOnce({ style: { display: 'block' } }); toggleFAQSection(mockSection); expect(mockSection.querySelector).toHaveBeenCalledWith('.faq-questions'); expect(mockSection.querySelector('.faq-questions').style.display).toBe('none'); }); test('показывает вопросы, если они были скрыты', () => { mockSection.querySelector.mockReturnValueOnce({ style: { display: 'none' } }); toggleFAQSection(mockSection); expect(mockSection.querySelector).toHaveBeenCalledWith('.faq-questions'); }); }); // 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'); }); test('корректно обрабатывает неверный ID попапа', () => { showPopup('nonexistentPopupId'); expect(document.getElementById).toHaveBeenCalledWith('nonexistentPopupId'); }); }); describe('closePopup', () => { test('устанавливает стиль отображения попапа на "none"', () => { closePopup('popupId'); expect(document.getElementById).toHaveBeenCalledWith('popupId'); expect(mockPopupElement.style.display).toBe('none'); }); test('корректно обрабатывает неверный ID попапа', () => { closePopup('nonexistentPopupId'); expect(document.getElementById).toHaveBeenCalledWith('nonexistentPopupId'); }); });