123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- const { describe, it, expect } = require('jasmine');
- describe("Регистрация нового пользователя", function() {
- it("должна зарегистрировать нового пользователя и перенаправить на страницу входа", function() {
- // Симуляция ввода данных пользователем
- document.getElementById('username').value = 'testUser';
- document.getElementById('email').value = 'test@example.com';
- document.getElementById('password').value = 'password123';
- document.getElementById('confirm-password').value = 'password123';
- // Шпион на window.location.href
- spyOn(window.location, 'href', 'set');
- // Триггер отправки формы
- document.getElementById('register-form').dispatchEvent(new Event('submit'));
- // Проверка, добавлен ли пользователь в localStorage
- const users = JSON.parse(localStorage.getItem('users'));
- const user = users.find(u => u.username === 'testUser');
- expect(user).toBeDefined();
- expect(user.email).toBe('test@example.com');
- // Проверка перенаправления
- expect(window.location.href).toBe('login.html');
- });
- });
- describe("Вход зарегистрированного пользователя", function() {
- it("должна аутентифицировать пользователя и перенаправить на страницу профиля", function() {
- // Добавление пользователя в localStorage
- const users = [{ username: 'testUser', email: 'test@example.com', password: 'password123' }];
- localStorage.setItem('users', JSON.stringify(users));
- // Симуляция ввода данных пользователем
- document.getElementById('username').value = 'testUser';
- document.getElementById('password').value = 'password123';
- // Шпион на window.location.href
- spyOn(window.location, 'href', 'set');
- // Триггер отправки формы
- document.getElementById('login-form').dispatchEvent(new Event('submit'));
- // Проверка, установлен ли currentUser в localStorage
- const currentUser = JSON.parse(localStorage.getItem('currentUser'));
- expect(currentUser).toBeDefined();
- expect(currentUser.username).toBe('testUser');
- // Проверка перенаправления
- expect(window.location.href).toBe('profile.html');
- });
- });
- describe("Просмотр профиля пользователя", function() {
- it("должен отображать информацию профиля пользователя", function() {
- // Добавление пользователя в localStorage
- const user = { username: 'testUser', email: 'test@example.com' };
- localStorage.setItem('currentUser', JSON.stringify(user));
- // Загрузка логики страницы профиля
- loadProfile();
- // Проверка отображаемой информации
- expect(document.getElementById('profile-username').textContent).toBe('testUser');
- expect(document.getElementById('profile-email').textContent).toBe('test@example.com');
- });
- });
- describe("Редактирование профиля пользователя", function() {
- it("должен обновлять информацию профиля пользователя", function() {
- // Добавление пользователя в localStorage
- const user = { username: 'testUser', email: 'test@example.com' };
- localStorage.setItem('currentUser', JSON.stringify(user));
- localStorage.setItem('users', JSON.stringify([user]));
- // Симуляция ввода данных пользователем
- document.getElementById('username').value = 'updatedUser';
- // Триггер отправки формы
- document.getElementById('profile-form').dispatchEvent(new Event('submit'));
- // Проверка, обновлены ли данные пользователя в localStorage
- const updatedUser = JSON.parse(localStorage.getItem('currentUser'));
- expect(updatedUser.username).toBe('updatedUser');
- });
- });
- describe("Выход из учетной записи", function() {
- it("должен завершить сеанс пользователя и перенаправить на страницу входа", function() {
- // Добавление пользователя в localStorage
- const user = { username: 'testUser', email: 'test@example.com' };
- localStorage.setItem('currentUser', JSON.stringify(user));
- // Шпион на window.location.href
- spyOn(window.location, 'href', 'set');
- // Триггер выхода
- document.getElementById('logout').dispatchEvent(new Event('click'));
- // Проверка, удален ли currentUser из localStorage
- expect(localStorage.getItem('currentUser')).toBeNull();
- // Проверка перенаправления
- expect(window.location.href).toBe('index.html');
- });
- });
- describe("Регистрация с неправильными данными", function() {
- it("должен отображать сообщение об ошибке и не регистрировать пользователя", function() {
- // Симуляция ввода данных пользователем
- document.getElementById('username').value = 'testUser';
- document.getElementById('email').value = 'invalid-email';
- document.getElementById('password').value = 'password123';
- document.getElementById('confirm-password').value = 'password123';
- // Триггер отправки формы
- document.getElementById('register-form').dispatchEvent(new Event('submit'));
- // Проверка сообщения об ошибке
- const message = document.getElementById('message');
- expect(message.textContent).toBe('Недопустимый адрес электронной почты!');
- // Проверка, не добавлен ли пользователь в localStorage
- const users = JSON.parse(localStorage.getItem('users'));
- const user = users ? users.find(u => u.username === 'testUser') : null;
- expect(user).toBeUndefined();
- });
- });
|