g.test.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. const calculateCredit = require('./1kredit.js');
  2. test('Цена: 2000000, Месяцев: 5', () => {
  3. const vehiclePrice = 2000000;
  4. const loanTerm = 5;
  5. const expectedResult = {
  6. monthlyPayment: '415000.00',
  7. totalInterest: '75000.00',
  8. totalPayment: 2075000.00
  9. };
  10. const result = calculateCredit(vehiclePrice, loanTerm);
  11. expect(result.monthlyPayment).toBe(expectedResult.monthlyPayment);
  12. expect(result.totalInterest).toBe(expectedResult.totalInterest);
  13. expect(result.totalPayment).toBe(expectedResult.totalPayment);
  14. });
  15. test('возвращает правильные значения для срока кредита в 6 месяцев', () => {
  16. const vehiclePrice = 1000000;
  17. const loanTerm = 6;
  18. const result = calculateCredit(vehiclePrice, loanTerm);
  19. expect(result.monthlyPayment).toBe('174166.67');
  20. expect(result.totalInterest).toBe('45000.02');
  21. expect(result.totalPayment).toBe(1045000.02);
  22. });
  23. const sendForm = require('./1sendForm.js');
  24. test('возвращает объект данных', () => {
  25. const name = 'Иван Иванов';
  26. const phone = '+79290390339';
  27. const date = '2024-03-15';
  28. const result = sendForm(name, phone, date);
  29. expect(result).toEqual({ name, phone, date });
  30. });
  31. const validateForm = require('./1testdrive.js');
  32. test('все поля заполнены правильно', () => {
  33. const name = 'Иван';
  34. const surname = 'Иванов';
  35. const phone = '89290390339';
  36. const email = 'ivan.ivanov@example.com';
  37. const password = 'password123';
  38. const result = validateForm(name, surname, phone, email, password);
  39. expect(result).toBe(true);
  40. });
  41. test('email введен некорректно', () => {
  42. expect(() => validateForm('Иван', 'Иванов', '89290390339', 'invalidemail', 'password123')).toThrowError("Введите корректный email.");
  43. });
  44. const generateRandomCode = require('./1generetion.js');
  45. test('возвращает код длиной 6 по умолчанию', () => {
  46. const code = generateRandomCode();
  47. expect(code).toHaveLength(6);
  48. });
  49. test('возвращает код заданной длины', () => {
  50. const code = generateRandomCode(4);
  51. expect(code).toHaveLength(4);
  52. });
  53. const checkForm = require('./1checkForm.js'); // Путь к вашему файлу checkForm.js
  54. test('все поля пароля заполнены правильно', () => {
  55. const oldPassword = 'oldpassword';
  56. const newPassword = 'newpassword123';
  57. const repeatPassword = 'newpassword123';
  58. const result = checkForm(oldPassword, newPassword, repeatPassword);
  59. expect(result).toBe(true);
  60. });
  61. test('новый и старый пароль не совпадают', () => {
  62. const oldPassword = 'oldpassword';
  63. const newPassword = 'newpassword123';
  64. const repeatPassword = 'wrongpassword';
  65. expect(() => checkForm(oldPassword, newPassword, repeatPassword)).toThrowError('Новый пароль и повторный пароль не совпадают!');
  66. });
  67. const checkDate = require('./1checkdata.js');
  68. test('введенная дата находится в прошлом', () => {
  69. const inputDate = '2023-12-31'; // Прошлое
  70. expect(() => checkDate(inputDate)).toThrowError("Дата должна быть больше или равна сегодняшней дате");
  71. });
  72. // Проверка на пустое поле email test1
  73. test('Проверка на пустое поле email', () => {
  74. expect(() => validateForm('Иван', 'Иванов', '89290390339', '', 'password123')).toThrowError("Все поля должны быть заполнены.");
  75. });
  76. //успешная отправка запроса (test2)
  77. const CallbackInput = require('./1callback');
  78. describe('CallbackInput', () => {
  79. test('Успешная отправка запроса', async () => {
  80. const phoneNumber = '+79290390339';
  81. // Мокинг fetch API
  82. global.fetch = jest.fn().mockResolvedValue({
  83. json: () => Promise.resolve({ success: true }),
  84. });
  85. await CallbackInput(phoneNumber);
  86. // Проверка, что fetch был вызван с правильными аргументами
  87. expect(fetch).toHaveBeenCalledWith('http://localhost:8000/api/callbacks', {
  88. method: 'POST',
  89. headers: {
  90. 'Content-Type': 'application/json',
  91. },
  92. body: JSON.stringify({ phone_number: phoneNumber }),
  93. });
  94. });
  95. //неуспешная отправка запроса (test3)
  96. test('Неуспешная отправка запроса', async () => {
  97. const phoneNumber = '+79290390339';
  98. // Мокинг fetch API
  99. global.fetch = jest.fn().mockResolvedValue({
  100. json: () => Promise.resolve({ success: false }),
  101. });
  102. await CallbackInput(phoneNumber);
  103. // Проверка, что fetch был вызван с правильными аргументами
  104. expect(fetch).toHaveBeenCalledWith('http://localhost:8000/api/callbacks', {
  105. method: 'POST',
  106. headers: {
  107. 'Content-Type': 'application/json',
  108. },
  109. body: JSON.stringify({ phone_number: phoneNumber }),
  110. });
  111. });
  112. });