/
lelderbe
/
homework-react
Обзор
Документация
Войти
/
lelderbe
/
homework-react
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/utils/commonUtils.spec.ts
48 строк
2 KB
lelderbe
test: add utils tests and Header component tests
01 июн 2024, 23:18
01 июн 2024, 23:18
4f6c590
Код
Авторство
О чём код?
import * as commonUtils from './commonUtils'; describe('Тесты для файла commonUtils', () => { beforeEach(() => { jest.clearAllMocks(); }); describe(`Тест для утилиты ${commonUtils.objectHasProperty.name}`, () => { const mockObject = { a: 10 }; const objectHasPropertySpyOn = jest.spyOn(commonUtils, 'objectHasProperty'); test('Успешно находит ключ в объекте', () => { expect(commonUtils.objectHasProperty(mockObject, 'a')).toBeTruthy(); expect(objectHasPropertySpyOn).toHaveBeenCalledTimes(1); }); test('Успешно сообщает о том, что ключа в объекте нет', () => { expect(commonUtils.objectHasProperty(mockObject, 'b')).toBeFalsy(); expect(objectHasPropertySpyOn).toHaveBeenCalledTimes(1); }); test('Успешно обрабатывает случаи, когда первый аргумент не является объектом', () => { expect(commonUtils.objectHasProperty(10, 'a')).toBeFalsy(); expect(commonUtils.objectHasProperty('10', 'a')).toBeFalsy(); expect(commonUtils.objectHasProperty(undefined, 'a')).toBeFalsy(); expect(commonUtils.objectHasProperty(null, 'a')).toBeFalsy(); expect(commonUtils.objectHasProperty(true, 'a')).toBeFalsy(); expect(commonUtils.objectHasProperty([], 'a')).toBeFalsy(); }); const possibleFirstArgs = [10, '10', undefined, null, true, []]; test('Успешно обрабатывает случаи, когда первый аргумент не является объектом (оптимизированный вариант)', () => { possibleFirstArgs.forEach((firstArg) => { expect(commonUtils.objectHasProperty(firstArg, 'a')).toBeFalsy(); }); }); describe('Успешно обрабатывает случаи, когда первый аргумент не является объектом (вариант с разбивкой на тесты)', () => { possibleFirstArgs.forEach((firstArg) => { test(`Успешно обрабатывает случаи, когда первый аргумент ${JSON.stringify(firstArg)}`, () => { expect(commonUtils.objectHasProperty(firstArg, 'a')).toBeFalsy(); expect(objectHasPropertySpyOn).toHaveBeenCalledTimes(1); }); }); }); }); });