Я создал эту утилиту.Он принимает 3 параметра (значение: строка, сервис: любой which is an actual service(GET)
, имя: строка).
Вот утилита:
import { serverErrorResponseUtil } from 'util/serverErrorResponseUtil';
import { HttpError } from 'factories/httpFactory';
const validateUniqueName = (value: string, service: any, name: string): string =>
service()
.then(({ data }: { data: object }) => {
if (Array.isArray(data) && data.find(resourceData => resourceData.name === value)) {
throw new Error(`${name} already exists`);
}
})
.catch((error: HttpError) => {
throw serverErrorResponseUtil(error);
});
export default validateUniqueName;
Я пытаюсь протестировать эту утилиту,но так как мне нужно принять service
в качестве параметра вместе с value, name
, я немного озадачен тем, как это сделать.
Вот что я сделал:
import validateUniqueName from '../validateUniqueName';
import validationRules from '../__mocks__/validationRules';
jest.mock('../__mocks__/services.ts');
describe('validateUniqueName', () => {
let validateUniqueNameFn: Function = jest.fn();
beforeEach(() => {
validateUniqueNameFn = validateUniqueName;
});
it('should THROW an error if the given value already exists', () => {});
it('should ACCEPT the data if the pass name is unique', () => {});
});
И эти два сценария, которые я хочу охватить.Можете ли вы помочь мне немного.Просто некоторые гиды будут хороши.